VBA EXCEL BÀI " />
RaoVat24h
Excel Office

VBA EXCEL BÀI 8] – PHẠM VI VÀ THỜI GIAN HOẠT ĐỘNG CỦA BIẾN

Advertisement

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:
sub 1
kết quả khi gọi sub 1
sub2
Kết quả khi gọi sub 2
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/

Rate this post

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.

Đăng bình luận

(+84) (901) 369.468