【发布时间】:2018-05-10 05:40:14
【问题描述】:
我希望仅使用包含函数名称的字符串来引用函数。我查看了 callbyname 和 application.run,但我不确定我哪里出错了。
有什么想法吗?
Option Explicit
Public Sub TestDynamic1()
Debug.Print "TestDynamic 1"
End Sub
Sub TestDynamic2()
Debug.Print "TestDynamic 2"
End Sub
Private Sub TestDynamic3()
Debug.Print "TestDynamic 3"
End Sub
Sub callTestDynamic(i As Integer)
On Error GoTo DynamicCallError
Application.Run "TestDynamic" & i
Exit Sub
DynamicCallError:
Debug.Print "Failed dynamic call: " & Err.Description
End Sub
Public Sub TestMe()
callTestDynamic 1
callTestDynamic 2
callTestDynamic 3
callTestDynamic 4
End Sub
我得到的只是说宏不存在的错误。
我想做的是
function testFunction(functionName as string)
run functionName
end function
sub testSub()
*... some code here ...*
testFunction "test"
end sub
function test()
debug.print "This function works"
end function
任何人都可以提供任何帮助将不胜感激。
【问题讨论】:
-
把你的代码放在一个普通的模块中让它对我来说可以正常运行。 TestDynamic 1、2 和 3 正常工作,不存在的 TestDynamic4 按预期导致错误