我只是好奇是否有办法动态调用函数。例如。
Sub foo1()
Debug.Print "in foo1"
End Sub
Sub foo2()
Debug.Print "in foo2"
End Sub
有没有办法可以做类似的事情:
Sub callSomeFoo(i as Integer)
Call foo&i
End Sub
或者是这样的必要:
Sub callSomeFoo(i as Integer)
Select Case i
Case 1
Call foo1
Case Else
Call foo2
End Select
End Sub
不是什么紧迫的事情……只是好奇。也欢迎任何其他有创意的事情来做函数调用。
谢谢!
edit1:这是我的代码和下面列出的错误:
Sub foo1()
Debug.Print "in foo1"
End Sub
Sub foo2()
Debug.Print "in foo2"
End Sub
Sub callSomeFoo()
Dim i%
'using a cell on the worksheet to determine the function. Happens to be "1"
i = Sheets("Sheet1").Range("A1").Value
'Line below works
Call foo1
'Line below gives me an error
Application.Run "foo"&i
End Sub
错误是:
运行时错误“1004”无法运行宏“foo1”。该工作簿中的宏可能不可用,或者所有宏都可能被禁用。