从行数组填充ListBox

问题描述 投票:3回答:2

任何人都可以解释我的代码有什么问题吗?我试图在行数组上填充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
excel vba excel-vba
2个回答
1
投票

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

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

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.