Tạo Combobox nhiều cột trong UserForm VBA Excel

Rate this post

Thông thường, bạn vẫn có thể thấy Combobox chứa các danh sách chỉ có 1 cột. Nhưng, bạn có biết rằng có thể tạo Hộp tổ hợp có nhiều hơn 1 cột khi sử dụng trong Excel VBA UserForm hay không?

Combobox nhiều cột sẽ giúp bạn hiển thị nội dung của danh sách các tùy chọn chi tiết hơn rất nhiều. Vì vậy, trong bài viết này, tôi sẽ chia sẻ với các bạn cách đơn giản nhất để tạo Combobox với nhiều cột trong UserForm VBA Excel.

Tạo một hộp tổ hợp nhiều cột trong UserForm VBA

Trước khi bắt đầu, nếu bạn chưa biết cách tạo và sử dụng Userform trong Excel VBA thì hãy tham khảo bài viết Hướng dẫn sử dụng UserForm trong VBA trước nhé.

Đây, ví dụ tạo Combobox nhiều cột, Tôi sẽ tạo một UserForm. Trong đó bao gồm: 1 Combobox và 3 Textbox.

Hộp tổ hợp nhiều cột trong UserForm VBA Excel

Tiếp theo, chúng ta sẽ tiến hành bắt đầu tạo danh sách nhiều cột cho Combobox.

Hãy tạo một chức năng UserForm_Initialize () và tham khảo cách khởi tạo dữ liệu cho Combobox nhiều cột như sau:

Private Sub UserForm_Initialize() ComboBox1.ColumnCount = 3 Dim fruits(1 To 5, 1 To 3) As String Dim i As Integer, j As Integer fruits(1, 1) = "Avocado : Bo" fruits(1, 2) = "KG" fruits(1, 3) = 30000 fruits(2, 1) = "Mango : Xoai" fruits(2, 2) = "KG" fruits(2, 3) = 25000 fruits(3, 1) = "Kumquat : Quat" fruits(3, 2) = "KG" fruits(3, 3) = 10000 fruits(4, 1) = "Apricot : Mo" fruits(4, 2) = "KG" fruits(4, 3) = 50000 fruits(5, 1) = "Rambutan : Chom Chom" fruits(5, 2) = "KG" fruits(5, 3) = 25000 ComboBox1.List = fruits End Sub

Code language: VB.NET (vbnet)

Trong hàm trên, hãy xem xét các lệnh sau:

  • ComboBox1.ColumnCount = 3 : khai báo Combobox gồm 3 cột.
  • Làm mờ trái cây (1 đến 5, 1 đến 3) dưới dạng chuỗi: khai báo mảng 2 chiều 5 x 3. Tương ứng với 5 hàng, 3 cột.
  • ComboBox1.List = trái cây: gán mảng cho Combobox.

Hoàn thành chức năng như trên, bây giờ bạn có thể thử chạy UserForm để xem kết quả.

Combobbox 3 cột UserForm

Đọc giá trị của các cột đã chọn trong Combobox

Tạo Combobox gồm 3 cột. Tiếp theo, làm thế nào để nhận giá trị cột theo hàng đã chọn?

Bạn thấy trong phương thức khởi tạo mảng cho Combobox, mỗi hàng có 3 cột được thêm vào.

Như vậy, khi lấy giá trị từ Combobox theo hàng đã chọn. Bạn chỉ cần lấy nó Cột (0) tương ứng với cột 1, Cột (1) tương ứng với cột 2 của mảng…

Và, bạn có thể bắt sự kiện Thay đổi của Hộp kết hợp để ghi giá trị của hàng vào Hộp văn bản như sau.

Private Sub ComboBox1_Change() On Error Resume Next TextBox1.Text = ComboBox1.Column(0) TextBox2.Text = ComboBox1.Column(1) TextBox3.Text = ComboBox1.Column(2) End Sub

Code language: VB.NET (vbnet)

Sau khi hoàn thành chức năng trên, hãy chạy UserForm. Khi chọn một hàng trong Combobox, các giá trị tương ứng với cột cũng sẽ được ghi vào Textbox.

Nhận giá trị từ Excel VBA Combobox

Sự kết luận

Trên đây là cách đơn giản để bạn tạo 1 Combobx có nhiều cột trong UserForm VBA Excel. Bạn có thể tùy chỉnh nâng cao hơn bằng cách đọc và gán cho Combobox từ bảng được chỉ định trong bảng tính Excel.

Chúc vui vẻ!

Thanh Thuy

Leave a Reply

Your email address will not be published.