我遇到此运行时错误 - 在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工作
有人可以帮助解释为什么第一段代码不起作用吗?
答案 0 :(得分:2)
如果你想在一个字符串中包含一个引号,你需要做的就是加倍:
sTest = "=Search(""MyString"",A2)>0"
对我而言,这比使用Chr(34)
更容易
请注意,如果找不到字符串,SEARCH()将返回错误,而不是0。