【发布时间】:2014-04-09 16:04:25
【问题描述】:
我遇到此运行时错误 - 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)
因此评估函数抛出运行时错误类型不匹配
我试过了
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"
喧闹的工作
有人能帮忙看看为什么第一段代码不起作用吗?
【问题讨论】:
-
Search如果没有找到,则返回#VALUE!,因此,您不能使用Search()>0。改用这个:sTest = "=ISNUMBER(Search(" & Chr(34) & "MyString" & Chr(34) & Chr(44) & "A2" & "))",正如蒂姆建议的那样,使用"=ISNUMBER(Search(""MyString"",A2))"更具可读性
标签: excel vba type-conversion runtime-error runtimeexception