【问题标题】:How Do I populate a list box on a user from a range of cells in another workbook?如何从另一个工作簿中的一系列单元格填充用户的列表框?
【发布时间】:2016-12-02 01:12:09
【问题描述】:

我目前正在 excel vba 中构建一个用户表单,我想填充我的一个列表框。我无法从另一个工作簿中的一系列单元格中填充它?工作簿参考和工作表名称是正确的,我从工作代码中复制并测试了它。我尝试将私有子设置为公开,但得到相同的结果

Private Sub UserForm_Initialize()

        Shop_UserForm_ClockIn_Listbox_EmployeeName.List = Workbooks("hub.xlsb").Sheets("EmployeeNames").Range("f2").value            
End Sub

这是错误信息

运行时错误“381”, 无法设置 List 属性。无效的属性数组索引

【问题讨论】:

  • 正如@YowE3K 提到的,.List 方法需要数组,因此您将数组分配给它。一个一维数组。

标签: excel listbox userform vba


【解决方案1】:

您的代码正在崩溃,因为您试图将单个值分配给 List

这可行:

Private Sub UserForm_Initialize()    
    Shop_UserForm_ClockIn_Listbox_EmployeeName.List = Workbooks("hub.xlsb").Sheets("EmployeeNames").Range("f2:f3").value            
End Sub

因为它正在分配一个值数组。


如果您真的只想将 List 设置为单个值,您可以执行以下任一操作:

Private Sub UserForm_Initialize()
    Shop_UserForm_ClockIn_Listbox_EmployeeName.List = Array(Workbooks("hub.xlsb").Sheets("EmployeeNames").Range("f2").value)
End Sub

Private Sub UserForm_Initialize()
    Shop_UserForm_ClockIn_Listbox_EmployeeName.AddItem Workbooks("hub.xlsb").Sheets("EmployeeNames").Range("f2").value            
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    相关资源
    最近更新 更多