Một hộp tổ hợp trên biểu mẫu người dùng giống như một trình đơn thả xuống, có thể được sử dụng để chọn một tùy chọn từ các tùy chọn có sẵn. Nó giống như trình đơn thả xuống mà chúng tôi tạo bằng cách sử dụng xác thực dữ liệu trên trang tính.

Trong hầu hết các hình thức kỹ thuật số, bạn hẳn đã thấy ít nhất một hộp tổ hợp. Nó có thể là để chọn một tiểu bang từ danh sách các tiểu bang, một khóa học từ danh sách các khóa học, một quốc gia từ danh sách các quốc gia, v.v. Trong bài viết này, chúng ta sẽ tìm hiểu cách thêm một combobox trong một biểu mẫu người dùng VBA, cách để khởi tạo combobox với các giá trị và cách lấy giá trị từ combobox.

Thêm ComboBox vào Biểu mẫu Người dùng Để thêm một combobox vào biểu mẫu người dùng, trước tiên bạn cần có một biểu mẫu người dùng.

image

Bây giờ từ hộp công cụ, chọn combobox. Đây là tùy chọn thứ tư ở hàng trên cùng. Nếu bạn không thể nhìn thấy hộp công cụ. Đi tới Xem trong menu, nhấp vào Hộp công cụ. Hộp công cụ sẽ xuất hiện.

image

Tôi đã thêm nhãn các tiểu bang vì hộp kết hợp này sẽ chứa danh sách một số tiểu bang và một nút gửi để gửi biểu mẫu.

Làm thế nào để khởi tạo một combobox trong biểu mẫu người dùng? Đây là phần mà hầu hết mọi người đều mắc lỗi. Đôi khi người học viết mã để tải các giá trị trong combobox sau đó gửi các nút. Và khi họ tải biểu mẫu người dùng, hộp kết hợp không hiển thị bất kỳ giá trị nào. Để tải combobox, bạn nên viết mã trước khi tải biểu mẫu người dùng. Điều này có thể được thực hiện trong mô-đun, c hoặc nút nơi bạn tải biểu mẫu. Mã để tải danh sách combobox phải đứng trước lệnh formname.show.

Đang tải Combobox trong chương trình con gọi UserForm

Giả sử tôi muốn mã hóa một số mảng trong hộp kết hợp trạng thái. Vì vậy, tôi sẽ viết một chương trình con sẽ tải biểu mẫu người dùng để điền thông tin. Xem đoạn mã dưới đây.

Sub load_userform()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

UserForm1.Show

End Sub

Tôi xác định một mảng “bang” chứa một vài tên của các bang của Ấn Độ.

Bây giờ tôi sử dụng tên userform để truy cập combobox vì combobox là một phần của userform.

Tên biểu mẫu người dùng của tôi là userform1. Và tên của combobox là combobox1. Đây là những tên mặc định. Bạn có thể thay đổi chúng từ cửa sổ thuộc tính.

Tiếp theo, tôi khởi tạo thuộc tính danh sách của combobox với các trạng thái.

Và sau đó tôi hiển thị userform1 bằng lệnh show.

Khi bạn chạy mã trên, hộp kết hợp sẽ có tất cả các trạng thái được liệt kê.

image

Khởi tạo Combobox bằng sự kiện UserForm_Initialize ().

Một phương pháp khác để tải thành phần combobox trên biểu mẫu người dùng là sử dụng khởi tạo sự kiện biểu mẫu người dùng. Sự kiện này chạy trước khi tải biểu mẫu người dùng.

Bất cứ điều gì bạn muốn làm trước khi tải biểu mẫu người dùng, bạn có thể thực hiện tại đây.

Một trong những điều đó là tải các phần tử combobox. Vì vậy, hãy nhấp đúp vào biểu mẫu người dùng để mở vùng mã hóa trong đối tượng biểu mẫu người dùng. Bây giờ từ menu thả xuống bên trái, hãy chọn biểu mẫu người dùng. Sau đó, từ menu thả xuống bên phải, chọn khởi tạo.

image

Tên phụ còn trống UserForm_Initialize () sẽ được chèn vào. Mọi thứ được viết trong sub này sẽ được thực thi trước khi biểu mẫu người dùng hiển thị.

Vì vậy, chúng tôi viết mã khởi tạo cho combobox ở đây.

Private Sub UserForm_Initialize()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

End Sub

Lưu ý rằng chúng tôi không có lệnh userform1.show ở đây. Nó vẫn nằm trong mô-đun đó. Phụ đó sẽ được sử dụng để hiển thị biểu mẫu người dùng của chúng tôi.

Sub load_userform()

UserForm1.Show

End Sub

Vì vậy, người dùng sẽ chạy load_userform sub bằng cách sử dụng một số lệnh, nút hoặc phần tử được gán macro. Khi trình biên dịch chạy lệnh userform1.show mã, nó ngay lập tức chạy sự kiện useforma_initialize (). Sau đó, nó hiển thị biểu mẫu cho người dùng.

Ghi chú:

Nếu bạn viết mã để khởi tạo combobox với các giá trị trong lệnh button1 click, combobox sẽ không hiển thị bất cứ điều gì.

Để khởi tạo combobox với các giá trị, hãy tải nó trong bất kỳ trường hợp nào xảy ra trước khi người dùng đến hộp kết hợp để điền.

Lấy giá trị từ ComboBox Vì vậy, chúng tôi sử dụng các biểu mẫu để lấy một số thông tin. Và để sử dụng thông tin đó, chúng ta cần truy xuất chúng. Để nhận bất kỳ giá trị nào từ combobox biểu mẫu người dùng, chúng tôi sử dụng thuộc tính combobox.value. Nói chung, chúng tôi truy xuất các giá trị từ các phần tử biểu mẫu sau khi người dùng hoàn thành biểu mẫu và gửi biểu mẫu bằng cách sử dụng nút gửi. Vì vậy, chúng ta có thể sử dụng sự kiện commandbutton_click. Vì vậy, hãy chèn một nút lệnh và viết đệ trình lên đó, nếu bạn chưa có. Bây giờ nhấp đúp vào nó và bạn sẽ ở bên trong sự kiện commandButton_click.

Bây giờ hãy tạo một biến để lưu giá trị. Lưu nó trên một trang tính nếu bạn thích. Cuối cùng thoát khỏi biểu mẫu bằng lệnh Unload Me. Như được hiển thị trong mã dưới đây.

Private Sub CommandButton1_Click()

State = ComboBox1.Value

ThisWorkbook.Worksheets("sheet1").Range("A1") = State

Unload Me

End Sub

Vì vậy, các bạn, đây là cách bạn sử dụng combobox trong biểu mẫu người dùng VBA. Tôi hy vọng tôi đã giải thích và cho đúng vấn đề. Nếu bạn có bất kỳ câu hỏi nào về chủ đề này hoặc bất kỳ câu hỏi nào khác liên quan đến VBA, hãy hỏi tôi trong phần bình luận bên dưới.

Bài viết liên quan:

Nó là một ngôn ngữ lập trình của Microsoft. Nó được sử dụng với các ứng dụng Microsoft Office như MSExcel, MS-Word và MS-Access trong khi các biến VBA là các từ khóa cụ thể.

Bạn muốn yêu cầu Excel không hiển thị cảnh báo này và xóa trang tính chết tiệt.

Bài viết phổ biến:

Chức năng Countif là cần thiết để chuẩn bị bảng điều khiển của bạn.