How to find if an array contains a string使用此答案中的UDF我試圖測試列C中的每個單元格是否在aCheck
數組中。最後,我想切割單元格所在的行(如果確認在陣列內)並將該行粘貼到新表單中,但是到目前爲止,我在嘗試時收到帶有UDF的type mismatch error
或By Ref error
和調試。UDF如果值在數組中 - 類型與以前的答案不匹配 - IsInArray
我修改我在上述答案發現ByVal arr As Range
函數時它最初是arr As Variant
acheck(aCheck_Row, 1)
的表達被定義爲在局部變量窗口一個string
和aSelection
做參考列C,當我觀看錶達式在當地人的窗口內,Values2
表達確實列出了工作表上的工作表值。
就像我剛纔提到的,我用ByVal vs ByRef搞砸了,並將函數中的對象從數組中改爲範圍..我也注意到上面的答案建議答案只適用於我相信我有的一維數組。
如何測試列C中的值是否在數組acheck(aCheck_Row, 1)
中,或者如果不能完成如何測試列C中的值是否在範圍aSelection
?
Function IsInArray(stringToBeFound As String, ByVal arr As Range) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
LR = Range("C1500").End(xlUp).Row
ReDim acheck(1 To LR)
For i = 2 To LR
aCheck_Row = aCheck_Row + 1
acheck(aCheck_Row, 1) = CStr(cells(i, cA))
Next i
For Each cell In aSelection
If IsInArray(cell.Value, aSelection) Then
cell.Style = "Accent1"
End If
Next cell
使用過濾器()不是,除非你有很大的方法很高興在數組元素的子串中返回一個匹配。 –