Application.Evaluate运行时错误types不匹配

我正在遇到这种运行时错误types不匹配在VBA下面的函数调用

Dim sTest As String sTest = "=Search(" & Chr(34) & "MyString" & Chr(34) & Chr(44) & "A2" & ")>0" ''the above evaluates to =Search("MyString",A2)>0 Application.Evaluate(sTest) 

所以评估函数抛出一个运行时错误types不匹配

我试过了

 sTest = "=Search(" & Chr(34) & "MyString" & Chr(34) & Chr(44) & Chr(34) "Test MyString" & Chr(34) ")>0" 

还是一样的错误

当我在Excel的公式栏中使用上面的string,它的工作原理!

我试过了

 sTest = "=Search(""MyString"", ""Test MyString"")>0" 

它在VBA中工作

出乎我的意料

 sTest = "=Search(" & Chr(34) & Chr(34) & "MyString" & Chr(34) & Chr(34) & Chr(44) & Chr(34) & Chr(34) & "Test MyString" & Chr(34) & Chr(34) & ")>0" 

丁工作

有人可以帮助在这里为什么第一块代码不起作用?

如果你想在一个string中包含一个引号,你需要做的就是将它加倍:

 sTest = "=Search(""MyString"",A2)>0" 

对我来说比使用Chr(34)更容易

请注意,如果string未find,则SEARCH()将返回错误,而不是0。