Application.Evaluate运行时错误类型不匹配

时间:2014-03-06 19:40:56

标签: excel vba type-conversion runtime-error runtimeexception

我遇到此运行时错误 - 在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)

因此evaluate函数抛出运行时错误类型不匹配

我试过

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

仍然是同样的错误

当我在excel公式栏中使用上面的字符串时,它可以正常工作!!

我试过

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"
  

Din工作

有人可以帮助解释为什么第一段代码不起作用吗?

1 个答案:

答案 0 :(得分:2)

如果你想在一个字符串中包含一个引号,你需要做的就是加倍:

sTest = "=Search(""MyString"",A2)>0"
对我而言,这比使用Chr(34)

更容易

请注意,如果找不到字符串,SEARCH()将返回错误,而不是0。