我想重用一些代碼,從而使控制器在調用函數獲得不同的結果。問題似乎是要參考我想要更新的不同控制器。使用Excel VBA命令與變量
Function populate(num1, num2)
Dim index As Integer
index = ComboBox1.ListIndex
ComboBox2.Clear
Select Case index
Case Is = 0
With ComboBox2
ComboBox2.List = Worksheets("Sheet1").Range("A1:A10").Value
End With
Case Is = 1
With ComboBox2
ComboBox2.List = Worksheets("Sheet2").Range("A1:A10").Value
End With
Case Is = 2
With ComboBox2
ComboBox2.List = Worksheets("Sheet3").Range("A1:A10").Value
End With
End Select
End Function
Private Sub ComboBox1_Change()
Call populate(1, 2)
End Sub
Private Sub ComboBox3_Change()
Call populate(3, 4)
End Sub
Private Sub ComboBox5_Change()
Call populate(5, 6)
End Sub
當然,對於我調用的每個組合框(奇數),它應該更新第二個組合框(偶數)的值。但不是將代碼複製到每個奇數編號的組合框中,而是喜歡將某些代碼實際上通過函數調用重用,如上所示。
不幸的是,我不確定如何在VBA中完成這項工作。不用說,我想它是這樣的(不工作):
Function populate(num1, num2)
Dim index As Integer
index = ComboBox + num1 + .ListIndex
ComboBox + num1 + .Clear
Select Case index
Case Is = 0
With ComboBox + num2
ComboBox + num2 + .List = Worksheets("Sheet1").Range("A1:A10").Value
End With
Case Is = 1
With ComboBox + num2
ComboBox + num2 + .List = Worksheets("Sheet2").Range("A1:A10").Value
End With
Case Is = 2
With ComboBox + num2
ComboBox + num2 + .List = Worksheets("Sheet3").Range("A1:A10").Value
End With
End Select
End Function
也看了一下可能的重複問題,堅韌沒有解決不了我的問題。事實上,即使這個問題似乎是重複的,我也不認爲這個問題是。我試圖結合一個部分命令和一個變量來創建我想要使用的命令,而可能的重複似乎想要稍微不同的東西......我可能是錯的,但這就是我所看到的。
的可能的複製[引用Excel的用戶窗體控件名稱值從字符串(VBA)(http://stackoverflow.com/questions/24083717 /引用-Excel-userform-control-name-value-from-string-vba) – GSerg