我想从excel中获取“名称列表”数据集,并将其用于Combobox用户表单。用户使用“组合框”中的下拉菜单来选择名称。
我的问题是我不知道如何将“名称列表”数据集应用于组合框。名称列表的范围在单元格C2:AU2中,在工作表“ DoNotPrint-Names”中。一旦用户选择了名称,我希望在单击“下一步”按钮时将其输出到“ DoNotPrint-Setup”工作表中的单元格中。
“名称”列表的屏幕截图部分: https://imgur.com/sqsUFmF
用户窗体的屏幕截图: https://imgur.com/UX8ytrY
我尝试了下面的代码,该代码要求Userform从“ DoNotPrint-Names”工作表中填充单元格,因为它是从单行开始首先对其进行转置的。不知道之后如何进行。
Private Sub UserForm_Initialize()
ComboBox1.List = WorksheetFunction.Transpose(DoNotPrint - Names.Range("C2:AU2"))
End Sub
答案 0 :(得分:3)
选择您的列表并为其命名,
示例
然后将该列表加载到您的ComboBox1
代码示例
Option Explicit
Private Sub UserForm_Activate()
Dim vList As Variant
For Each vList In [MyList]
Me.ComboBox1.AddItem vList
Next
End Sub
答案 1 :(得分:1)
找到的解决方案的附录
除了@ 0m3r的有效答案外,您还可以使用数组方法将整个命名的水平列表分配给组合框的.List
属性在一个衬里:
Me.ComboBox1.List = Application.Transpose([myList])
修改
或者,您可以使用控件的.Column
属性,该属性似乎并不为人所知:
Me.ComboBox1.Column = [myList].Value