Hướng dẫn này sẽ trình bày cách sử dụng Xác thực dữ liệu để làm việc với danh sách thả xuống trong Excel bằng VBA.
Xác thực dữ liệu Excel cho phép bạn giới hạn (các) giá trị nào có thể được nhập vào một ô hoặc phạm vi. Bạn có thể giới hạn các mục nhập thành số nguyên dương, văn bản, ngày tháng và hơn thế nữa. Trong hướng dẫn này, chúng ta sẽ xem xét cách tạo Danh sách thả xuống xác thực dữ liệu trong một ô bằng VBA.
Lưu ý: Một thay thế cho danh sách Thả xuống Xác thực Dữ liệu là một đối tượng ListBox. ListBox có thể được thêm vào trang tính Excel. ListBox có thể kích hoạt macro chạy mỗi khi giá trị ListBox được thay đổi. ListBox cũng được sử dụng trong VBA Userforms.
Tạo danh sách thả xuống bằng VBA
Chúng ta có văn bản Fruit trong ô A1 và chúng ta sẽ tạo một danh sách thả xuống trong ô A2, với năm mục nhập.
Chúng tôi sẽ sử dụng phương thức Validation.Add và chỉ định rằng tham số Type là xlValidateList. Bạn có thể thêm các mục cụ thể mà bạn muốn vào danh sách của mình bằng cách sử dụng tham số Formula1.
Đoạn mã sau sẽ tạo danh sách thả xuống xác thực dữ liệu trong ô A2:
123456 | Sub DropDownListinVBA ()Phạm vi ("A2"). Xác thực. Loại thêm: = xlValidateList, AlertStyle: = xlValidAlertStop, _Công thức 1: = "Cam, Táo, Xoài, Lê, Đào"Kết thúc Sub |
Kết quả là:
Điền vào một danh sách thả xuống từ một phạm vi được đặt tên trong VBA
Bạn có thể sử dụng một phạm vi đã đặt tên có chứa các mục, để điền danh sách thả xuống trong VBA. Chúng tôi có phạm vi động vật được đặt tên được hiển thị bên dưới:
Chúng ta phải đặt tham số Formula1 bằng phạm vi đã đặt tên. Đoạn mã sau sẽ tạo danh sách thả xuống xác thực dữ liệu trong ô A7 dựa trên các mục trong phạm vi được đặt tên:
123456 | Sub PopulateFromANamedRange ()Phạm vi ("A7"). Xác thực. Loại thêm: = xlValidateList, AlertStyle: = xlValidAlertStop, _Công thức 1: = "= Động vật"Kết thúc Sub |
Kết quả là:
Xóa danh sách thả xuống
Bạn có thể sử dụng phương thức Validation.Delete để xóa danh sách thả xuống khỏi ô. Đoạn mã sau sẽ xóa danh sách thả xuống khỏi ô A7 trong ví dụ trên:
12345 | Sub RemoveDropDownList ()Phạm vi ("A7"). Xác thực. XóaKết thúc Sub |