Thắc mắc về Code trong sheet và code trong Module (3 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hoanglonglk2910

Thành viên mới
Tham gia
5/10/13
Bài viết
6
Được thích
0
Em mới vào diễn đàn được 02 ngày, thấy có nhiều ứng dụng vba hay quá. em có đọc bài ở http://www.giaiphapexcel.com/forum/showthread.php?47356-Hỏi-Code-để-mở-file-Excel-trong-thư-mục (bài của anh ndu96081631)
nhưng không hiểu Code trong sheetcode trong Module là như thế nào, khi nào thì tạo Code trong sheet, khi nào thì tạo code trong modun và cách tạo ra sao.
Trong file VBA TRONG EXCEL thì chia ra Code trong sheetcode trong Module
Trong file GetListFileInFolder thì nhập chung trong Module luôn.
Nhờ mọi người giải thích giúp em.
 

File đính kèm

Lần chỉnh sửa cuối:
nhưng không hiểu Code trong sheetcode trong Module là như thế nào, khi nào thì tạo Code trong sheet, khi nào thì tạo code trong modun và cách tạo ra sao.
Trả lời dùm bạn 1 ý nhé:
+ Khi tạo các sự kiện trong sheet như Worksheet_selectionchange, Worksheet_Active, Worksheet_change....thì người ta dùng code trong sheet...còn các trường hợp khác thì người ta hay đặt code trong Module (Bấm Alt+F11/ Vào Insert/ Module rùi viết code vào đó)
+ Cách tạo thế nào thì chúng ta phải học thôi, bạn hãy tìm hiểu những bài viết về VBA căn bản để đọc nhé, nó sẽ giúp bạn có những nhận thức ban đầu về VBA, còn nếu bạn chưa có 1 chút hiểu biết gì về VBA thì thật khó để giải thích cho bạn hiểu. Hix
 
Upvote 0
Code VBA bạn xem giống như văn bản ban hành vậy.
Đặt trong Module là ban hành cho toàn quốc. Tức là toàn file.
Đặt trong Sheet là ban hành cho toàn tỉnh (chi tiết hơn, và chỉ dùng riêng cho tỉnh đó). Tức là chỉ có tác dụng trong sheet mình đặt mã !
 
Upvote 0
Code VBA bạn xem giống như văn bản ban hành vậy.
Đặt trong Module là ban hành cho toàn quốc. Tức là toàn file.
Đặt trong Sheet là ban hành cho toàn tỉnh (chi tiết hơn, và chỉ dùng riêng cho tỉnh đó). Tức là chỉ có tác dụng trong sheet mình đặt mã !

Ai nói với bạn là Module là "ban hành toàn quốc" vậy? Muốn toàn quốc hay không là do ta đặt trước Sub, Function ... có Private. Khi đặt Private thì không toàn quốc được đâu nhé!

Còn trong Sheet Module, kể cả UserForm Module, nếu không dùng Private cũng vẫn có thể sử dụng được tại môi trường Module nhé!

Chứng minh:

Đặt thủ tục dưới đây vào trong Module của Sheet1

Mã:
Sub KiemTra()
    MsgBox "Da kiem tra"
End Sub

Và bây giờ, bạn tạo một Module và đặt tại đó thủ tục sau:

Mã:
Sub Test()
    Sheet1.KiemTra
End Sub

Cho chạy code này xem sao!

-------------------------------------------------------

Chính vì Sheet cũng như UserForm đều là kiểu Object nên khi gọi Macro trong các đối tượng này đều phải có tên của chúng đi kèm, cấu trúc:

ObjectName.MacroName
 
Lần chỉnh sửa cuối:
Upvote 0
Ai nói với bạn là Module là "ban hành toàn quốc" vậy? Muốn toàn quốc hay không là do ta đặt trước Sub, Function ... có Private. Khi đặt Private thì không toàn quốc được đâu nhé!

Nói "gọn gọn" như M@trixs có khi người ta còn dễ hiểu
Bàn cho nhiều vào như chú vậy, thằng em nó... teo luôn (hết hiểu)
Ẹc... Ẹc...
(thấy câu hỏi cũng biết của người mới học rồi)
 
Upvote 0
Nói "gọn gọn" như M@trixs có khi người ta còn dễ hiểu
Bàn cho nhiều vào như chú vậy, thằng em nó... teo luôn (hết hiểu)
Ẹc... Ẹc...
(thấy câu hỏi cũng biết của người mới học rồi)

Không đồng ý! Khi người mới dùng code họ thường "bê" nguyên si code người khác giúp đỡ cho mình vào file của mình. Thế là cho chạy code, nếu code đó tác giả đặt trước là Private thì ở môi trường khác không chạy được, lại nói "tại sao tôi đã đặt code vào "chỗ ban hành toàn quốc" rồi mà sao "tỉnh thành" của tôi không sử dụng được?". Đã không nói thì thôi, nói thì phải cho chính xác vào!
 
Upvote 0
Không đồng ý! Khi người mới dùng code họ thường "bê" nguyên si code người khác giúp đỡ cho mình vào file của mình. Thế là cho chạy code, nếu code đó tác giả đặt trước là Private thì ở môi trường khác không chạy được, lại nói "tại sao tôi đã đặt code vào "chỗ ban hành toàn quốc" rồi mà sao "tỉnh thành" của tôi không sử dụng được?". Đã không nói thì thôi, nói thì phải cho chính xác vào!

Bảo đảm chú (và cả tôi) cũng từng có thời không biết Private, Public là cái quái gì. Vậy cũng đâu cần quăng cả đống kiến thức "cao siêu" với người mới học làm gì
Người ta chỉ cần 1 khái niệm đơn giản để phân biệt code trong sheet là gì, code trong module là gì. Vậy giải thích ngắn gọn là đủ rồi. Khi nào trình độ người ta cao lên, người ta sẽ tự nghiên cứu
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom