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

时间:2016-12-02 01:12:09

标签: excel-vba listbox userform vba excel

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

Private Sub UserForm_Initialize()

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

这是错误消息

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

1 个答案:

答案 0 :(得分:0)

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