组合框的值与内部工作表名称

时间:2017-03-17 09:20:10

标签: excel excel-vba combobox vba

我有一个Excel电子表格,我想在其中应用组合框。 组合框下拉列表的值显示在Excel工作表的A列中:

            A
1        Test 1
2        Test 2
3        Test 3
4        Test 4

到目前为止,我对组合框使用以下代码:

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sheet1!A1:A4"
End Sub

此代码完美无缺。但是,当我从" Sheet1"更改工作表的名称时例如"营销"代码不再运行了。因此,最好是代码应引用Excel中的内部工作表名称。 因此我创建了以下代码:

Private Sub UserForm_Initialize()
ComboBox1.RowSource = Sheet1.Range("A1:A4")
End Sub

然而,使用此代码我得到运行时错误424。 您是否知道如何使用内部工作表名称将工作表中的值从组合框的下拉菜单中获取?

1 个答案:

答案 0 :(得分:1)

ComboBox1.RowSource = Sheet1.Name & "!A1:A4"

您还可以将范围添加为隐藏名称,以便自动更新(未测试):

ThisWorkbook.Names.Add Name:="myName", RefersTo:="=Sheet1!A1:A4", Visible:=False

然后在UserForm中:

ComboBox1.RowSource = "myName"