簡體   English   中英

EXCEL VBA比較單元格值與數組

[英]EXCEL VBA compare cell values to an Array

我以這篇文章為靈感: 如何查找數組是否包含字符串

希望你們能幫助我:

我想在Excel工作表中逐個單元格地遍歷列(范圍)單元格,並查找單元格值是否也在從excel范圍歸檔的數組中,但是由於某種原因,我遇到類型不匹配錯誤。 我猜想,這與將數組聲明為變體有關,但將其更改為字符串也無濟於事。

在此先感謝,非常感謝您的幫助

Function IsInArray(stringToBeFound, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function

Sub Check()

Dim cell As Range
Dim arr() As String
arr = Range("I2:I3").Value

For Each cell In Range("D2:D15")

    If IsInArray(CStr(cell.Value), arr) Then
     cell.Interior.Color = RGB(0, 176, 80)
    Else
     cell.Interior.Color = RGB(0, 0, 0)
    End If

Next cell
End Sub

過濾器僅適用於字符串-不適用於對象; 一個簡單的解決方案是改用以下方法:

Function IsInArray(ByVal VarToBeFound As Variant, ByVal Arr As Variant) As Boolean
    Dim Element As Variant
    For Each Element In Arr
        If Element = VarToBeFound Then
            IsInArray = True
            Exit Function
        End If
    Next Element

    IsInArray = False
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM