2017-03-17 56 views
0

我有一個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 你有什麼想法,我怎麼可以使用內部工作表名稱來從表中數值爲下降組合框的下拉菜單?

回答

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

您還可以添加的範圍內爲隱藏姓名,所以它的自動更新(未測試):

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

,然後在用戶窗體:

ComboBox1.RowSource = "myName"