从行数组填充ListBox

时间:2016-01-22 13:28:52

标签: excel vba excel-vba

任何人都可以解释我的代码有什么问题吗?我试图在行数组上填充ListBox。我得到运行时错误438.对象不支持此属性或方法,但不清楚我编码错误。

Private Sub ListBox1_Click()
Dim LastRow As Long

With Sheets("TempList")
    LastRow = .Range("A" & Rows.Count).End(xlUp).Row
End With

Sheets("tblSurveyMatches").ListBox1.RowSource = Sheets("TempList").Range("A2" & LastRow)

End Sub

2 个答案:

答案 0 :(得分:1)

如果这是工作表上的ActiveX控件,这将有效,您需要使用ListFillRange而不是RowSource

Sheets("tblSurveyMatches").ListBox1.ListFillRange= Sheets("TempList").Name & "!" & Range("A2:A" & LastRow).Address

请注意,通常最佳做法可以将Range限定为工作表,但在这种情况下,因为我们只需要一个地址字符串,所以在这里并不重要。

答案 1 :(得分:0)

您可能已在表单中添加了Forms控件而非ActiveX控件;表格控件由表格处理(" tblSurveyMatches")。形状集合。

引发错误是因为Sheets中没有ListBox1(" tblSurveyMatches")(确实如果它是ActiveX控件)。