Phạm vi của một biến trong Excel VBA xác định nơi biến đó có thể được sử dụng. Bạn xác định phạm vi của một biến khi bạn khai báo nó.

Có ba mức phạm vi: mức thủ tục, mức mô-đun và mức mô-đun công khai.

Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau:

Variable Scope Example

  1. Đặt hai thủ tục (một thủ tục là một con hoặc một hàm) vào một mô-đun. Trong Trình soạn thảo Visual Basic, bấm Chèn, Mô-đun. Thêm các dòng mã sau:

Procedure Level Scope in Excel VBA

  1. Kết quả khi bạn nhấp vào nút lệnh trên trang tính (gọi hai phụ):

Procedure Level Scope Result

Procedure Level Scope Result

Giải thích: biến txt có mức thủ tục phạm vi vì nó được khai báo trong thủ tục (giữa Sub và End Sub). Do đó, bạn chỉ có thể sử dụng biến này trong sub1. Không thể sử dụng biến txt trong sub2.

  1. Khi bạn muốn một biến có sẵn cho tất cả các thủ tục trong một mô-đun, bạn đang nói rằng bạn muốn biến có phạm vi mức mô-đun.

Bạn cần khai báo biến trong phần Khai báo chung (ở đầu mô-đun). Điều chỉnh một chút mã như sau:

Module Level Scope in Excel VBA

  1. Kết quả khi bạn bấm vào nút lệnh trên sheet:

Module Level Scope Result

Module Level Scope Result

Giải thích: biến txt bây giờ có thể được sử dụng trong sub2. Mức mô-đun được sử dụng thay thế cho mức mô-đun riêng. Đó là do các biến mặc định được khai báo với câu lệnh Dim trong phần Khai báo chung được xác định phạm vi là riêng tư. Bạn cũng có thể xác định phạm vi một biến là công khai. Đọc tiếp.

  1. Bằng cách sử dụng từ khóa Public, biến của bạn sẽ có sẵn cho tất cả các thủ tục trong tất cả các mô-đun trong sổ làm việc. Đây được gọi là phạm vi mức mô-đun công khai. Điều chỉnh một chút mã như sau:

Public Module Level Scope in Excel VBA

Giải thích: bây giờ bạn có thể tạo một mô-đun mới và đặt một con gọi là sub3 vào mô-đun này. Sử dụng mã tương tự như sub2. Thêm sub3 vào mã nút lệnh của bạn. Khi bạn nhấp vào nút lệnh trên trang tính, bạn sẽ nhận được ba hộp thông báo cho biết “Chỉ có thể sử dụng biến trong quy trình này” (xem tệp Excel có thể tải xuống).