String 如何在字符串中使用函数名引用函数
我希望只使用包含函数名的字符串来引用函数。我已经查看了callbyname和application.run,但我不确定哪里出了问题 有什么想法吗String 如何在字符串中使用函数名引用函数,string,excel,function,vba,String,Excel,Function,Vba,我希望只使用包含函数名的字符串来引用函数。我已经查看了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.Pr
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
任何人能提供的任何帮助都将不胜感激。您在命名方面存在一些不一致之处 同时,将“test”用作函数也不起作用
Sub testSub()
'*... some code here ...*
testFunction "test1"
End Sub
Function testFunction(functionName As String)
Application.Run functionName
End Function
Function test1()
Debug.Print "This function works"
End Function
注:OP引用以下代码:
把你的代码放在一个普通的模块中,使它能正确运行。TestDynamic 1、2和3正常工作,不存在的TestDynamic4导致了预期的错误,可能是的重复