从行数组填充ListBox

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从行数组填充ListBox相关的知识,希望对你有一定的参考价值。

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

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

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

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

另一答案

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

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

以上是关于从行数组填充ListBox的主要内容,如果未能解决你的问题,请参考以下文章

错误3004:从行开始映射片段时出现问题

使用 SQL 存储过程填充 ListBox

使用 DataBinding 的 ListBox 填充速度极慢

为每个或命名范围填充ListBox

使用数组 C# WPF 中的项目填充列表框

如何使用excel vba从行创建多个word文档?