VBA EXCEL BÀI 8] – PHẠM VI VÀ THỜI GIAN HOẠT ĐỘNG CỦA BIẾN
Phạm vi sử dụng của biến
Có 2 cấp độ sử dụng của phạm vi biến: Procedure, Module
Cấp độ | Private | Public |
Procedure | Chỉ được sử dụng trong Procedure mà biến được khai báo | Không được sử dụng |
Module | Chỉ được sử dụng trong Module mà biến được khai báo | Được sử dụng trên tất cả các module khác nhau |
1. Biến sử dụng trong phạm vi Procedure (chính là trong sub hoặc function) trong một mudule. Bạn hãy tạo một module như sau:
Bây giờ bạn chạy submain(). Để chạy sub main thì bạn phải trỏ chuột vào hàm và bấm nút run hoặc F9 sẽ cho kết quả như sau:
Như vậy khi gọi sub2() thì biến msg không được khai báo, trong khi đó chúng ta đã khai báo ở sub1(). Như vậy biến msg chỉ sử dụng được trong sub1()
2. Bây giờ bạn muốn biến msg sử dụng được trong cả sub2() tức là toàn bộ trong mudule1 đó, bạn phải thay đổi phạm vi sử dụng của nó bằng cách khai báo như sau:
Kết quả của chạy procedure submain() là 2 hộp thoại xuất hiện như sau:
Như vậy khi sub1 chạy xong thì nó sẽ ghi nhớ giá trị và khi gọi tới sub2 nó sẽ cũng lấy giá trị đó, kết quả là biến msg dùng được cả 2 sub hoặc có thể nhiều sub hơn trong mudule1 này.
3. Sử dụng biến trên nhiều module khác nhau. Bạn tạo một module1, module2 bạn chỉ cần thay đổi thành từ khóa Public
Kết quả khi chạy procedure main() trong module2 sẽ cho kết quả là xuất hiện lần lượt 3 hộp thoại như bên dưới:
Như vậy là biến msg được sử dụng trên nhiều module bằng cách khai báo từ khóa Public
Thời gian hoạt động của biến
Đôi khi viết code bạn muốn lưu giữ lại giá trị cuối cùng của biến khi đã kết thúc procedure để sử dụng cho mục đích khác. Bạn có thể sử dụng từ khóa Static để khai báo biến.
1.Tạo ví dụ để so sánh khi sử dụng từ khóa static và không sử dụng
- Không sử dụng
- Có sử dụng
Khi bạn run code thì tại window Immediate sẽ show giá trị a cho mỗi lần run. Nhìn vào đó thì bạn cũng đánh giá được rồi. Biến a sẽ được lưu giá trị cho lần chạy sau khi sử dụng từ khóa Static
(Sử dụng Debug.Print và Immediate để xem kết quả. Mở window Immediate vào tool view->Immediate window, đây là cách hay để kiểm tra giá trị của các biến để sửa lỗi)
Kết luận
Qua bài trên sẽ giúp bạn sử dụng biến một cách linh hoạt, tránh sử dụng nhiều biến lặp lại không hiệu quả, cách truyền giá trị biến để xử lý tốt hơn.
?DienDan.Edu.Vn cám ơn bạn đã quan tâm và rất vui vì bài viết đã đem lại thông tin hữu ích cho bạn. https://diendan.edu.vn/
DienDan.Edu.Vn Cám ơn bạn đã quan tâm và rất vui vì bài viết đã đem lại thông tin hữu ích cho bạn.DienDan.Edu.Vn! là một website với tiêu chí chia sẻ thông tin,... Bạn có thể nhận xét, bổ sung hay yêu cầu hướng dẫn liên quan đến bài viết. Vậy nên đề nghị các bạn cũng không quảng cáo trong comment này ngoại trừ trong chính phần tên của bạn.Cám ơn.