VBA ComboBox

ComboBoxes cho phép người dùng chọn một tùy chọn từ danh sách menu thả xuống. ComboBox có thể được tạo trong VBA UserForms hoặc bằng một trang tính Excel. Trong hướng dẫn này, bạn sẽ học cách tạo và thao tác ComboBox trong VBA và trong trang tính Excel.

Nếu bạn muốn tìm hiểu cách tạo Listbox, hãy nhấp vào đây: VBA Listbox

Nếu bạn muốn tìm hiểu cách tạo Hộp kiểm, hãy nhấp vào đây: Hộp kiểm VBA

Tạo một ComboBox trong Trang tính Excel

Để chèn một ComboBox trong Trang tính, bạn cần phải đi tới Tab nhà phát triển, nhấp chuột Chèn và trong Điều khiển ActiveX, hãy chọn Hộp kết hợp:

Hình ảnh 1. Chèn một ComboBox trong Trang tính

Khi bạn chọn ComboBox mà bạn đã chèn, bạn có thể nhấp vào Tính chất Bên dưới Tab nhà phát triển:

Hình ảnh 2. Thay đổi thuộc tính ComboBox

Tại đây bạn có thể đặt các thuộc tính khác nhau của ComboBox. Để bắt đầu, chúng tôi đã thay đổi thuộc tính Tên đến cmbComboBox. Bây giờ, chúng ta có thể sử dụng ComboBox với tên này trong mã VBA.

Điền một ComboBox trong mã VBA

Đầu tiên, chúng ta cần điền các giá trị vào ComboBox. Trong hầu hết các trường hợp, một ComboBox cần được điền khi Sổ làm việc được mở. Do đó, chúng ta cần đặt mã để điền ComboBox vào đối tượng Sách bài tập, thủ tục Mở ra. Thủ tục này được thực hiện mỗi khi người dùng mở Workbook. Đây là mã:

123456789 Với Sheet1.cmbComboBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Kết thúc với

Khi bạn nhấp vào menu thả xuống, bạn sẽ có 5 tên để lựa chọn (John, Michael, Jennifer, Lilly và Robert):

Hình ảnh 3. Điền ComboBox trong VBA

Điền một ComboBox từ một Phạm vi ô

Một cách khả thi khác để điền ComboBox là để người dùng thực hiện. Một ComboBox có thể được liên kết với phạm vi ô. Trong cách tiếp cận này, mỗi khi người dùng nhập một giá trị mới vào phạm vi ô, ComboBox sẽ cập nhật với giá trị đó.

Nếu bạn muốn kích hoạt tính năng này, bạn phải truy cập vào Tính chất của ComboBox và đặt thuộc tính ListFillRange đến phạm vi ô (trong trường hợp của chúng tôi là E2: E5):

Hình 4. Điền ComboBox từ phạm vi ô

Chúng tôi đã liên kết ComboBox của mình với phạm vi E2: E5, nơi chúng tôi đặt những cái tên mà chúng tôi muốn (Nathan, Harry, George, Roberta). Do đó, ComboBox hiện được điền với các tên sau:

Hình ảnh 5. ComboBox được phổ biến từ phạm vi ô

Nhận một mục đã chọn của ComboBox trong VBA

Mục đích của ComboBox là để có được sự lựa chọn của người dùng. Để truy xuất lựa chọn của người dùng, bạn cần sử dụng mã này:

123 Dim strSelectedItem As VariantstrSelectedItem = Sheet1.cmbComboBox.Value

Lựa chọn người dùng nằm trong thuộc tính Giá trị của Sheet1.cmbComboBox sự vật. Giá trị này được gán cho biến strSelectedItem:

Hình 6. Nhận một giá trị đã chọn từ ComboBox trong VBA

Chúng tôi đã chọn Julia trong ComboBox và thực hiện thủ tục. Như bạn có thể thấy trong Hình 5, giá trị của strSelectedItemJulia, là giá trị chúng tôi đã chọn. Bây giờ bạn có thể xử lý thêm biến này trong mã.

Xóa ComboBox

Nếu bạn muốn xóa ComboBox trong VBA, bạn cần sử dụng Sạch phương pháp của Sheet1.lstComboBox sự vật. Nó sẽ xóa tất cả các mục khỏi ComboBox. Đây là mã:

1 Sheet1.cmbComboBox.Clear

Khi chúng tôi thực thi mã, chúng tôi nhận được ComboBox trống:

Hình 7. Xóa ComboBox

Sử dụng ComboBox trong Biểu mẫu người dùng

Như chúng tôi đã đề cập, Combobox thường được sử dụng nhất trong Biểu mẫu người dùng. Để giải thích cách bạn có thể làm điều đó, trước tiên chúng tôi sẽ chèn một Biểu mẫu người dùng. Trong trình soạn thảo VBA, nhấp chuột phải vào Tên mô-đun, nhấp vào Chèn và lựa chọn UserForm:

Hình ảnh 8. Chèn biểu mẫu người dùng

Để hiển thị các điều khiển để chèn, bạn cần bật Hộp công cụ. Để làm điều này, hãy nhấp vàoHộp công cụ trên thanh công cụ. Sau đó, bạn sẽ nhận được các cửa sổ với tất cả các điều khiển có sẵn. Bạn có thể nhấp vào ComboBox để tạo nó trong Biểu mẫu người dùng.

Hình ảnh 9. Chèn một ComboBox trong Biểu mẫu người dùng

Chúng tôi sẽ đặt tên là ComboBox cmbComboBox. Để điền vào nó các giá trị, chúng ta cần đặt đoạn mã sau vào phương thức Khởi tạo của đối tượng UserForm:

12345678910111213 Private Sub UserForm_Initialize ()Với UserForm1.cmbComboBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Kết thúc vớiKết thúc Sub

Mã này kích hoạt mỗi khi người dùng chạy Biểu mẫu người dùng và điền vào Combobox với 5 tên sau:

Hình 10. ComboBox với các giá trị trong Biểu mẫu người dùng

Nếu bạn muốn nhận giá trị đã chọn từ ComboBox, bạn cần sử dụng logic tương tự cho Combobox trong Trang tính, được giải thích trước đó trong bài viết.

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave