我想重用一些代码,从而使控制器在调用函数获得不同的结果。问题似乎是要参考我想要更新的不同控制器。使用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