Biến toàn cầu VBA | Làm thế nào để khai báo biến toàn cục trong VBA?

Một số hàm được định nghĩa bên trong một hàm và được sử dụng trong các hàm và một số biến được định nghĩa bên ngoài các hàm và được sử dụng bởi tất cả các hàm và các biến đó được sử dụng làm Biến toàn cục, ví dụ: các biến được khai báo trong hàm con là được gọi là Biến toàn cục.

Biến toàn cục trong Excel VBA

Khai báo một biến có vẻ khá đơn giản nhưng để sử dụng tốt chúng ta cần hiểu phạm vi của các biến đó. Thường thì chúng ta khai báo các biến cho mỗi macro bên trong thủ tục con mỗi lần. Nhưng bằng cách khai báo một biến, chúng ta có thể sử dụng nó trong tất cả các macro trong cùng một mô-đun cũng như trong các mô-đun khác của dự án VBA hiện tại. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách khai báo Biến toàn cục trong Excel VBA.

Biến toàn cục trong Excel VBA là gì?

Biến toàn cầu VBA là các biến được khai báo trước khi bắt đầu bất kỳ macro nào trong mô-đun. Khi các biến được khai báo bằng cách sử dụng "Công khai" hoặc "Toàn cầu", nó sẽ trở thành "Biến toàn cục".

Các biến thủ tục phụ không thể sử dụng ở bất kỳ đâu

Chúng ta thường khai báo biến bên trong chương trình con trong vba bằng cách sử dụng từ “Dim”.

Nhìn vào hình trên, tôi đã khai báo biến “k” là số nguyên bên trong thủ tục con Global_Example1.

Nếu chúng ta sử dụng biến này bên trong thủ tục Sub này tại bất kỳ thời điểm nào. Tuy nhiên, tôi không thể sử dụng biến này trong một thủ tục con khác trong cùng một mô-đun lớp trong VBA hoặc trong một mô-đun khác.

Như thể hiện trong hình trên, biến “k” được khai báo trong quy trình con Global_Example1 không thể được sử dụng trong thủ tục con Global_Example2.

Tương tự, biến “j” được khai báo trong quy trình con Global_Example2 không thể được sử dụng trong thủ tục con Global_Example1 mặc dù cả hai quy trình con đều nằm trong cùng một mô-đun.

Làm thế nào để khai báo biến toàn cục trong VBA?

Sau đây là các cách khai báo một biến toàn cục trong excel VBA.

# 1 - Biến mô-đun có thể được sử dụng trong bất kỳ Thủ tục con nào trong cùng một mô-đun

Như chúng ta đã thấy, chúng ta không thể sử dụng các biến thủ tục con trong bất kỳ mô-đun nào. Để làm cho chúng có sẵn cho tất cả các thủ tục Sub trong cùng một mô-đun, chúng ta cần khai báo các biến ở đầu mô-đun.

Trong hình trên, tôi chỉ khai báo biến khi bắt đầu mô-đun. Tôi đã khai báo biến “MyNumber” là Số nguyên trong Mô-đun 1 .

Khi biến được khai báo ở trên cùng của mô-đun, chúng ta có thể sử dụng cùng một biến cho tất cả các thủ tục Con khác trong cùng một mô-đun, trong trường hợp này, chúng ta có thể sử dụng biến “MyNumber” cho tất cả các thủ tục Con trong Mô-đun 1.

Vấn đề là chúng tôi không thể sử dụng chúng trong bất kỳ mô-đun nào khác. Trong trường hợp này, biến “MyNumber” được khai báo trong Mô-đun 1 không thể được sử dụng trong Mô-đun 2.

 # 2 - Biến Toàn cục có thể được sử dụng trong bất kỳ Thủ tục con nào và cũng trong bất kỳ Mô-đun nào

Bây giờ chúng ta đã thấy hai loại khai báo biến và phạm vi của chúng trong khi sử dụng. Điều thú vị là chúng ta có thể khai báo biến trong bất kỳ mô-đun nào và sử dụng cho tất cả các thủ tục Con trong tất cả các mô-đun của cùng một Dự án VBA.

Để làm cho biến khả dụng cho tất cả các thủ tục Sub trên tất cả các mô-đun, chúng ta cần khai báo biến ở đầu mô-đun không phải bằng cách sử dụng từ “Dim” mà bằng cách sử dụng từ “Public” hoặc “Global”.

Trong hình trên, bạn có thể thấy tôi đã sử dụng từ “Công khai” để khai báo biến thay vì từ “Dim” kỳ cựu của chúng tôi .

Trong ảnh chụp màn hình ở trên, tôi đã khai báo biến trong Mô-đun 1. Tôi có thêm hai mô-đun có tên là Mô-đun 2 & Mô-đun 3.

Vì tôi đã khai báo biến bằng cách sử dụng từ “Công khai” ở đầu mô-đun, bây giờ tôi có thể truy cập các biến này trong bất kỳ thủ tục con nào trên bất kỳ mô-đun nào của cùng một sổ làm việc.

Không chỉ “Public”, mà chúng ta cũng có thể sử dụng từ “Global” để khai báo biến.

Toàn cầu & Công khai là hai từ khóa để khai báo biến và cung cấp chúng trên các mô-đun trong VBA.

Những điều cần ghi nhớ

  • Khi macro excel chạy với giá trị của biến toàn cục của biến là giống nhau trên tất cả các thủ tục phụ.
  • Tốt hơn là nên duy trì một mô-đun cụ thể để khai báo các biến toàn cục trong VBA và có tất cả các biến trong một mô-đun.
  • Cách duy nhất chúng ta có thể đặt lại giá trị của biến là đặt lại mã macro bằng cách nhấn nút dừng.

$config[zx-auto] not found$config[zx-overlay] not found