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 bên 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 để thực hành 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 quy trình 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 và 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 tôi 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 ảnh trên. Tôi đã khai báo biến “k” là số nguyên bên trong quy trình con Global_Example1.

Giả sử 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 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 quy trình 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 đã thể hiện biến “MyNumber” dưới dạng 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, không thể sử dụng biến “MyNumber” được khai báo trong Mô-đun 1, 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 biến đó 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 phải 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ên “Công khai” hoặc “Toàn cầu”.

Trong hình ả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ừ kỳ cựu của chúng tôi "Dim".

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 nữa, được đặt tên là Mô-đun 2 & Mô-đun 3.

Vì tôi đã khai báo biến bằng từ “Công khai” ở đầu mô-đun, 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ỉ "Công khai", mà chúng ta cũng có thể sử dụng từ "Toàn cầu" để khai báo biến.

Global & Public 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 một biến toàn cục, thì biến đó sẽ 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.

thú vị bài viết...