Tôi đã thêm một ListBox vào một SHEET (không phải là một "UserForm") Tôi đã làm điều này bằng cách sử dụng chuột. Tôi nhấp vào biểu tượng Búa và Cờ lê nhỏ.Làm cách nào để tôi tham chiếu đến đối tượng điều khiển, trên trang tính, sử dụng tên biến?
ListBox này dường như dễ dàng tham chiếu sử dụng mã như thế này:
ListBox1.Clear
hoặc
ListBox1.AddItem("An option")
Tuy nhiên, tôi có ba trong số những listboxes (tên, thuận tiện, ListBox1, ListBox2, và ListBox3) và tôi muốn viết một hàm để điền chúng với dữ liệu mảng, như sau:
Call populate_listbox(ListBox2, designAreaArray)
Trong trường hợp đối số đầu tiên là tên hộp danh sách, thứ hai là dữ liệu.
Nhưng tôi không biết cách gửi "ListBox2" chính xác hoặc tham khảo chính xác trong hàm.
Ví dụ:
Dim controlName as string
controlName = "ListBox1"
không hoạt động, ngay cả khi tôi xác định các chức năng như sau:
Sub populate_listbox(LB As ListBox, dataArray As Variant)
Dim i As Integer: i = 0
For i = LBound(dataArray, 2) + 1 To UBound(dataArray, 2) ' Skip header row
LB.AddItem (dataArray(index, i))
Next i
End Sub
Rõ ràng nó kết quả trong một lỗi kiểu dữ liệu mis-phù hợp. Tôi đã cố gắng xác định "controlName" như một ListBox, nhưng điều đó đã không làm việc ...
Mặc dù có lẽ nó là tài liệu tham khảo của tôi vào listBox không chính xác. Tôi đã nhìn thấy rất nhiều cách để tham chiếu đến một đối tượng điều khiển ...
MSForms.ListBox.
ME.ListBox
Forms.Controls.
Worksheet.Shapes.
Danh sách này tiếp tục và không có tác dụng đối với tôi.
Cảm ơn bạn. Tôi sửa đổi phụ của tôi cho mỗi câu trả lời của justnS, và thiết lập biến của tôi (cMyListbox) như bạn đã chỉ ra ở trên, và sự kết hợp đã làm việc. Cảm ơn bạn đã tip về điền vào danh sách, cũng có. – Symmitchry
Không có prob, vui vì nó đã làm việc cho bạn. – Reafidy