[英]How would I loop through table headers to populate a ComboBox drop-down list?
我正在尝试遍历表的标题行以填充用户窗体的 ComboBox 下拉列表。
我的表格的标题行是我的工作表的第二行。
我的想法是使用 intersect() 函数来检查我的循环是否仍在我的标题范围内,如果不是,则退出循环。
如果 intersect 为真,则将当前cell.value
添加到 ComboBox 列表中。
我也试图将标题行存储到一个数组中,但我无法启动我的循环来查看我的代码是否将标题行值设置为一个数组。
我得到的错误是
'对象变量或块变量未设置'
Option Explicit
Dim ws As Worksheet
Public Tbl1 As ListObject
Private Sub ComboBox_DropButtonClick()
Set ws = ActiveSheet
Set Tbl1 = ws.ListObject("Table1")
Dim i As Integer
Dim Tbl1HeaderArray() As Variant
i = 1
ComboBox.RowSource = ""
Do Until i = -1
If Intersect(Tbl1.HeaderRowRange(), ws.Cells(2, i)) Is Nothing Then
i = -1
Else
ComboBox.AddItem (ws.Cells(2, i).Value)
Tbl1HeaderArray(i - 1) = ws.Cells(2, i).Value
i = i + 1
End If
Loop
End Sub
我尝试了几种不同的方法,但这是最有希望的。 我对完成任务的不同途径持开放态度。
编码
Option Explicit
Private Sub ComboBox1_DropButtonClick()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim tbl As ListObject
Set tbl = ws.ListObjects("Table1")
With ComboBox1
'.Clear
.Column = tbl.HeaderRowRange.Value
End With
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.