繁体   English   中英

使用VBA,如何突出显示一张纸上某一列中的列表中的值(如果该值存在于另一张纸的范围内)

[英]Using VBA, how to highlight a value that is in a list in one column on one sheet if the value exists in range on a different sheet

我在工作表“ A”的一栏中有一个ID列表。 在工作表“ B”上,我将这些ID散布在一个表格(一个范围)中。 我如何搜索范围以查看工作表A上列出的每个值是否存在于工作表B上? 我想确保工作表A的一列中的所有值都存在于工作表B中。该宏应该检查并突出显示确实存在的值。 因此,任何不存在的值都不会突出显示,并且我可以轻松解决。 目前,我们正在手动更新,但我需要它具有不断变化的动态性。

以下是到目前为止我尝试过的操作,但出现“下一个不适用”错误。 我已经在vba中编码,但是已经很长时间了。 任何帮助表示赞赏。 顺便说一句,我直到真正开始工作才真正关心颜色,所以我只选了一个数字。

Sub CaseIdCheck()

    Dim i, j, x As Integer
    Dim intValueToFind, testCaseId, tciPass1, tciPass2 As String
    Dim range1, range2 As Range

    range1 = Application.GotoActiveWorkbook.Sheets("B").Range("C4:U50")
    range2 = Application.GotoActiveWorkbook.Sheets("A").Range("i3:i145")

    For x = 1 To ActiveWorkbook.Sheets("A").CountA(Columns(9))
    If Cells(x, 9).Value <> Null Then
       testCaseId = Sheets("A").Cells(x, 9).Value

        For i = 1 To 100
            For j = 1 To 100
                If Sheets("B").Cells(i, j).Value = testCaseId Then
                    Sheets("A").Cells(x, 9).Interior.ColorIndex = 36
                Else
            Next j
        Next i

                End If
    Next x
    Else
    MsgBox ("end")
End Sub

这需要是VBA吗? 您可以使用命名范围和条件突出显示来完成此操作。

创建一个使用此命名范围公式定义的新命名范围(我们将其称为rngCheck ):

=B!$1:$1048576

然后将此条件格式应用于工作表“ A”的第I列:

=COUNTIF(rngCheck,I1)>0

并选择所需的颜色(ColorIndex 36的RGB是R 255,G 255,B153)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM