与内部工作表名称的combobox的值

我有一个Excel电子表格,我想应用一个combobox。 combobox下拉列表的值显示在Excel表格的A列中:

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

到目前为止,我使用下面的代码为combobox:

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

此代码完美工作。 但是,当我将工作表的名称从“Sheet1”更改为“Marketing”时,代码将不再运行。 因此,代码应该引用Excel中的内部工作表名称。 因此我创build了以下代码:

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

但是,使用此代码我得到运行时错误424.你有任何想法如何使用内部工作表名称来获取工作表中的值到combobox的下拉菜单?

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

您也可以将范围添加为隐藏的名称,以便自动更新(未testing):

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

然后在UserForm中:

 ComboBox1.RowSource = "myName"