【发布时间】:2018-09-17 11:20:58
【问题描述】:
我有一个 16 张的 Excel 工作簿。
我想在我的用户窗体上创建一个列表框,它将列出工作表 1 单元格 F2 到 F50 中的数据。
我的代码
Private Sub UserForm_Initialize()
ListBox1.Clear
Sheet11.Activate
ListBox1.RowSource = "Sheet11!F2:F10"
End Sub
返回错误
“运行时错误 '380' 无法设置 RowSource 属性。无效的属性值”
【问题讨论】:
-
这是错字
Sheet11吗? -
我倾向于使用表格。然后,您可以在清除列表框后执行以下操作从表中添加值:
Me.oMyListBox.List = oMyWB.oMyWS.ListObjects("<table name>").DataBodyRange.Value -
使用
"Sheet11!F2:F10"正在寻找名为“Sheet11”的工作表,使用Sheet11.Activate实际上是在激活第11 个工作表。您应该使用工作表名称而不是工作表索引。作为行源。您不需要激活工作表来填充列表框,除非您真的想要。 -
谢谢 Davesexcel,当我使用工作表名称而不是工作表编号(工作表 11、工作表 10 等)时,它可以工作。我认为 Excel VBA 的对象在开发人员部件上查看时通常遵循对象属性中列出的名称。