2016-03-04 23 views
0

給定一個數組,我想要一個函數來確定一個數組中是否存在字符串。 字符串必須與函數的輸入和數組內容完全相同。函數來確定一個特定的字符串是否存在於一個數組中

Function IsInArray(ThsStrng As String, arr() As String, bnd As Integer) As Boolean 
    For Z = 1 To bnd 
    If arr(Z) = ThsStrng Then 
     IsInArray = True 
    Else 
     IsInArray = False 
    End If 
    Next Z 
End Function 

起初,它似乎是功能正常運行。幾次使用這個函數後,我注意到False值(意味着輸入字符串不等於數組中的值)是不正確的(輸入值與數組中的值完全相同) 。

請幫幫忙,

+0

爲什麼不'則IsNumeric(Application.Match( 「字符串找人」,arrayVariable,0))'?如果存在完全匹配,那將是真實的,如果不是,則爲假... –

回答

1

試想一下,當比賽在陣列中被發現發生了什麼。下一次迭代將是不匹配的,並且返回值被設置回False。找到匹配項時,您需要停止循環。

我相信的是,VBA語法是

Exit For 
+0

謝謝,這解決了它! – devakotia

+1

'Exit Function'也可以做到。但'退出'肯定更合適。 –

相關問題