如何从另一个工作簿中的一系列单元格填充用户的列表框?

How Do I populate a list box on a user from a range of cells in another workbook?

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

Private Sub UserForm_Initialize()

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

这是错误信息

运行-时间错误'381', 无法设置列表 属性。无效 属性 数组索引

您的代码正在崩溃,因为您试图将单个值分配给 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