2014-03-06 61 views
0

我遇到這種運行時錯誤 - 類型不匹配以下函數調用VBAApplication.Evaluate運行時錯誤類型不匹配

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" 

還是同樣的錯誤

當我使用AB在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" 

聲浪工作

有人可以幫助在這裏爲什麼第一塊代碼不起作用?

+1

如果找不到任何內容,'Search'將返回'#VALUE!',因此,您不能使用Search()> 0'。改爲使用這個:'sTest =「= ISNUMBER(搜索(」&Chr(34)&「MyString」&Chr(34)&Chr(44)&「A2」&「))」'並且Tim表示,更易於使用'「= ISNUMBER(搜索(」「MyString」「,A2))」' –

回答

2

如果你想在一個字符串報價,所有你需要做的是加倍了起來:

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

,我認爲比使用Chr(34)

注意,搜索()返回一個錯誤更容易如果字符串未找到,則不爲0.

+0

該死的..對於我的手動測試我測試了錯誤情況。現在我設置斷點並將A2中的單元格值更改爲「Test MyString」並且它可以工作。所以,由於搜索返回的錯誤,評估失敗了。謝謝你,先生。 –