Hộp tổ hợp là một danh sách thả xuống từ đó người dùng có thể chọn một mục hoặc điền vào lựa chọn của riêng mình. Để tạo một hộp tổ hợp trong Excel VBA, hãy thực hiện các bước sau.

  1. Trên tab Nhà phát triển, nhấp vào Chèn.

  2. Trong nhóm ActiveX Controls, nhấp vào Combo Box.

Create a combo box in Excel VBA

  1. Kéo một hộp tổ hợp trên trang tính của bạn.

Drag a Combo Box

Lưu ý: bạn có thể thay đổi tên của điều khiển bằng cách nhấp chuột phải vào điều khiển (đảm bảo Chế độ thiết kế được chọn) và sau đó nhấp vào Thuộc tính. Hiện tại, chúng ta sẽ để ComboBox1 làm tên của hộp kết hợp.

Tạo sự kiện mở sổ làm việc. Mã được thêm vào Sự kiện Mở Sổ làm việc sẽ được Excel VBA thực thi khi bạn mở sổ làm việc.

  1. Mở Trình soạn thảo Visual Basic.

  2. Nhấp đúp vào Sổ làm việc này trong Project Explorer.

  3. Chọn Workbook từ danh sách thả xuống bên trái và chọn Mở từ danh sách thả xuống bên phải.

Workbook Open Event in Excel VBA

  1. Để thêm các mục vào hộp tổ hợp, hãy thêm các dòng mã sau vào Sự kiện Mở Sổ làm việc:

With Sheet1.ComboBox1

.AddItem "Paris"

.AddItem "New York"

.AddItem "London"

End With

Lưu ý: sử dụng Sheet2 nếu hộp tổ hợp của bạn nằm trên trang tính thứ hai, Sheet3 nếu hộp tổ hợp của bạn nằm trên trang tính thứ ba, v.v. Nếu bạn sử dụng các dòng mã này bên ngoài sự kiện Mở Sổ làm việc, bạn có thể muốn thêm các dòng mã bên dưới trước những dòng mã này. Dòng mã đầu tiên xóa hộp tổ hợp. Bằng cách này, các mục của bạn sẽ không được thêm nhiều lần nếu bạn thực thi mã nhiều lần. Dòng mã thứ hai xóa lựa chọn của riêng bạn.

ComboBox1.Clear

ComboBox1.Value = ""

Lưu ý: cũng xem thuộc tính ListFillRange để điền vào một hộp tổ hợp với một dải ô.

  1. Lưu, đóng và mở lại tệp Excel.

Kết quả:

Combo Box

Mặc dù trong một số tình huống, việc đặt trực tiếp hộp tổ hợp trên trang tính của bạn có thể hữu ích, nhưng hộp tổ hợp đặc biệt hữu ích khi được đặt trên Biểu mẫu người dùng.