【发布时间】:2015-06-12 23:12:23
【问题描述】:
我有 2 个函数可以检查数组中是否存在字符串。 我不知道哪个更好,以及是否有任何理由使用其中一个。任何帮助,将不胜感激。谢谢你:)
功能1
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
功能2
Function IsInArray(myArray As Variant, val As String) As Boolean
Dim i As Integer, found As Boolean
found = False
If Not Len(Join(myArray)) > 0 Then
found = False
Else
For i = 0 To UBound(myArray)
If myArray(i) = val Then
found = True
End If
Next i
End If
IsInArray = found
End Function
【问题讨论】:
-
设置
found = True后,您不必在第二个函数中继续循环。就做IsInArray = True : Exit Function -
这两个函数做不同的事情。使用
Filter也将匹配子字符串,而您的第二个函数仅在存在 exact 匹配时才返回 true。 -
谢谢你们俩。这些 cmets 帮助
标签: arrays string vba function