【发布时间】:2017-03-29 09:48:41
【问题描述】:
我发现这个函数可以识别字符串是否在给定的数组中,但是它似乎无法处理通配符(或者至少不是我这样做的方式)。
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
我对函数的使用:
Dim BannedWildcards() As Variant
BannedWildcards = Array("", "-", "?", 0, "na", "n/a", _
"*account*", "*hse*", "*defined*", "*applicable*", "*operation*", "*action*", "*manager*")
Select Case True
Case IsInArray(LCase(Sht_Tracker.Cells(RowCounter_CRCT, 17)), BannedWildcards) = True
Arr_Dashboard_Current(10, ArrC_Dashboard_Current) = "#N/A"
Case Else: Arr_Dashboard_Current(10, ArrC_Dashboard_Current) = Sht_Tracker.Cells(RowCounter_CRCT, 17)
End Select
【问题讨论】:
-
是和不是。我的一些字符串不是通配符,而另一些则是。您链接到的那个似乎无法区分它。话虽如此,我想最简单的方法是使用两个数组,一个带通配符,一个不带通配符
标签: arrays excel wildcard select-case vba