如何循环浏览表格标题以填充组合框下拉列表



我正试图循环遍历表的标题行,以填充UserForm的ComboBox下拉列表。

表格的标题行是工作表的第二行。

我的想法是使用intersect((函数来检查循环是否仍在标题范围内,如果不在,则退出循环
如果intersect为true,则将当前cell.value添加到组合框列表中。

我还试图将头行存储到一个数组中,但我无法启动循环来查看我的代码是否将头行值设置为数组
我得到的错误是

"对象变量或未设置块变量">

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

最新更新