2016-01-22 92 views
3

任何人都可以解释我的代码有什么问题吗?我正在试图在行数组上填充一个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 

谢谢。

回答

1

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

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

请注意,这是正常最佳实践来限定Range到工作表,但在这种情况下,因为我们需要的是一个地址字符串,它并不像这里重要的。

+0

它出于某种原因似乎没有填充列表框。不知道为什么。 – Chris2015

+0

@ Chris2015查看ListBox属性。在运行代码后,它在ListFillRange中说了什么? –

+0

TempList!$ A $ 217 .....似乎不是真正的范围 – Chris2015

0

您可能已将表单控件添加到工作表而不是ActiveX控件;表单控件由表格(“tblSurveyMatches”)处理。形状集合。

由于表格中没有ListBox1(“tblSurveyMatches”)(如果它是一个ActiveX控件,的确会存在),所以会引发错误。