我想用类似名称创建多个潜艇。这是我的Excel VBA代码:
' sub main
Sub LoopSubsTest()
' defining an array
Dim myarray As Variant
myarray = Array("solver_inv_1", "solver_inv_2")
' for-loop
For i = 1 to 2
' sub sub
Sub myarray.Item(g)()
' this is the code part
...
End Sub
Next i
End Sub
当然,欢迎任何其他解决方案。遗憾的是,此代码违反了VBA编码,即Subs无法嵌入另一个Subs。如何在Excel VBA中使用for循环创建多个subs?提前谢谢。
答案 0 :(得分:1)
<强> Application.Run 强>
在这里,您可以找到两种执行名为Subs的方法:
[1]常数加计数器
Sub LoopSubsConst()
Const MYSUB = "solver_inv_"
' for-loop
For i = 1 To 2
Run MYSUB & i
Next i
End Sub
[2]命名数组项
Sub LoopSubsArray()
' declare array
Dim myarray As Variant
myarray = Array("solver_inv_1", "solver_inv_2")
' run subs
For i = LBound(myarray) To UBound(myarray)
Run myarray(i)
Next i
End Sub
注意强>
Application.Run
也可以接收最多30个与被调用的subs中的顺序相对应的参数(警告:只有值,没有对象作为参数)。