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

问题描述:

我有一个Excel电子表格,我想应用组合框。 为降组合框的上下值显示在A列在Excel表:与内部工作表名称的组合框的值

  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”更改为例如“Marketing”时,代码将不再运行。因此,代码应该参考Excel中的内部表名称。 因此,我创建了以下代码:

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

然而,与此代码我得到运行时错误424 你有什么想法,我怎么可以使用内部工作表名称来从表中数值为下降组合框的下拉菜单?

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

您还可以添加的范围内为隐藏姓名,所以它的自动更新(未测试):

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

,然后在用户窗体:

ComboBox1.RowSource = "myName"