Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA tạo một Biểu mẫu người dùng có chứa các hộp tổ hợp phụ thuộc. Userform mà chúng ta sẽ tạo ra như sau:

Người dùng chọn Động vật từ danh sách thả xuống. Do đó, người dùng có thể chọn một con vật từ danh sách thả xuống thứ hai.

Dependent Combo Boxes in Excel VBA

Người dùng chọn Thể thao từ danh sách thả xuống. Do đó, người dùng có thể chọn một môn thể thao từ danh sách thả xuống thứ hai.

Dependent Combo Boxes in Excel VBA

Để tạo Biểu mẫu người dùng này, hãy thực hiện các bước sau.

  1. Mở Trình soạn thảo Visual Basic. Nếu Project Explorer không hiển thị, hãy bấm View, Project Explorer.

  2. Nhấp vào Chèn, Biểu mẫu người dùng. Nếu Hộp công cụ không tự động xuất hiện, hãy bấm Xem, Hộp công cụ. Màn hình của bạn sẽ được thiết lập như bên dưới.

Userform Screen Setup in Excel VBA

  1. Thêm các hộp tổ hợp (đầu tiên ở bên trái, thứ hai ở bên phải) và nút lệnh. Khi điều này đã được hoàn thành, kết quả sẽ phù hợp với hình ảnh của Biểu mẫu người dùng được hiển thị trước đó. Ví dụ: tạo điều khiển hộp tổ hợp bằng cách nhấp vào ComboBox từ Hộp công cụ.

Tiếp theo, bạn có thể kéo một hộp tổ hợp trên Biểu mẫu người dùng.

  1. Bạn có thể thay đổi tên và chú thích của các điều khiển. Tên được sử dụng trong mã VBA Excel. Phụ đề là những thứ xuất hiện trên màn hình của bạn. Bạn nên thay đổi tên của các điều khiển, nhưng không cần thiết ở đây vì chúng ta chỉ có một số điều khiển trong ví dụ này. Để thay đổi chú thích của biểu mẫu người dùng và nút lệnh, hãy nhấp vào Chế độ xem, Cửa sổ thuộc tính và nhấp vào từng điều khiển.

  2. Để hiển thị Biểu mẫu người dùng, hãy đặt một nút lệnh trên trang tính của bạn và thêm dòng mã sau:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Bây giờ chúng ta sẽ tạo Sub UserForm_Initialize. Khi bạn sử dụng phương thức Hiển thị cho Biểu mẫu người dùng, phụ này sẽ tự động được thực thi.

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

  2. Trong Project Explorer, nhấp chuột phải vào UserForm1 và sau đó nhấp vào View Code.

  3. Chọn Userform từ danh sách thả xuống bên trái. Chọn Khởi tạo từ danh sách thả xuống bên phải.

  4. Thêm các dòng mã sau:

Private Sub UserForm_Initialize()

With ComboBox1

.AddItem "Animals"

.AddItem "Sports"

.AddItem "Food"

End With

End Sub

Giải thích: Những dòng mã này điền vào hộp tổ hợp đầu tiên.

Bây giờ chúng tôi đã tạo phần đầu tiên của Biểu mẫu người dùng. Mặc dù nó trông đã gọn gàng rồi, nhưng sẽ không có gì xảy ra khi chúng ta chọn một mục từ hộp kết hợp đầu tiên.

  1. Trong Project Explorer, nhấp đúp vào UserForm1.

  2. Nhấp đúp vào hộp tổ hợp đầu tiên.

  3. Thêm các dòng mã sau:

Private Sub ComboBox1_Change()

Dim index As Integer

index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index

Case Is = 0

With ComboBox2

.AddItem "Dog"

.AddItem "Cat"

.AddItem "Horse"

End With

Case Is = 1

With ComboBox2

.AddItem "Tennis"

.AddItem "Swimming"

.AddItem "Basketball"

End With

Case Is = 2

With ComboBox2

.AddItem "Pancakes"

.AddItem "Pizza"

.AddItem "Chinese"

End With

End Select

End Sub

Giải thích: Excel VBA sử dụng giá trị của chỉ số biến để kiểm tra từng câu lệnh Case tiếp theo để xem hộp tổ hợp thứ hai sẽ được điền vào những mục nào. Truy cập vào liên kết của chúng tôi: / vba -amples-select-case [Chọn Case]

chương trình để tìm hiểu thêm về cấu trúc Chọn trường hợp.

  1. Nhấp đúp vào nút Nhập.

  2. Thêm dòng mã sau:

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

Kết quả:

Dependent Combo Boxes in Excel VBA