Hướng dẫn này sẽ dạy bạn cách trả về một giá trị từ một thủ tục con trong VBA.
Một thủ tục con không được thiết kế để trả về một giá trị - đó là những gì một thủ tục hàm được sử dụng cho. Tuy nhiên, có thể có lúc bạn đang chạy một số mã trong một thủ tục con mà bạn cần lấy một giá trị từ thủ tục con đó. Cách để thực hiện việc này là sử dụng Mô-đun hoặc Biến toàn cục hoặc sử dụng Thủ tục phụ để điền trang tính Excel.
Sử dụng các biến để trả lại giá trị
Bạn có thể khai báo các biến ở cấp mô-đun. Khi làm như vậy, các biến đó có thể được sử dụng ở bất kỳ đâu trong mô-đun và các biến vẫn giữ nguyên giá trị của chúng. Để khai báo một biến ở cấp mô-đun, chỉ cần khai báo biến ở đầu mô-đun mã của bạn:
123456789 | Tùy chọn rõ ràngDim dblQty as DoubleSub TestA ()'gọi phụ TestBGọi TestB'hiển thị giá trị biến trong cửa sổ mô-đunDebug.Print dblQtyKết thúc Sub |
1234 | Kiểm tra phụB ()'điền biến mô-đundblQty = 900Kết thúc Sub |
Để kết hợp chúng lại với nhau, chúng tôi sẽ chạy TestA, sau đó sẽ gọi TestB và cung cấp cho chúng tôi giá trị 900 trong cửa sổ ngay lập tức.
Điều này sẽ chỉ hoạt động trong mô-đun, vì biến đã được khai báo bằng cách sử dụng câu lệnh Dim ở mức Mô-đun.
Biến toàn cầu
Bạn có thể khai báo biến ở mức toàn cục để sử dụng nó trong suốt các mô-đun dự án của mình.
Sử dụng một thủ tục phụ để điền một trang tính Excel
Thủ tục phụ bên dưới sẽ điền trực tiếp Dải ô A1 đến C1 trong trang tính Excel của bạn, do đó trả về giá trị cho các ô từ Thủ tục phụ.
12345 | Sub PopulateRange ()Phạm vi ("A1") = "Sản phẩm"Phạm vi ("B1") = "Số lượng"Phạm vi ("C1") = "Chi phí"Kết thúc Sub |
Sau đó, bạn có thể tham chiếu các giá trị đó trong một quy trình khác bằng cách tham chiếu các giá trị ô:
1234567 | Sub RetrieveRange ()Làm mờ sản phẩm dưới dạng chuỗi, số lượng dài, chi phí tăng gấp đôiSản phẩm = Phạm vi ("A1")Quant = Phạm vi ("B1")Chi phí = Phạm vi ("C1")Kết thúc Sub |