Excel 在两张图纸之间查找

Excel 在两张图纸之间查找,excel,vba,vlookup,Excel,Vba,Vlookup,我试图找出表1中特定范围内的哪些项目写在表2中的a列中。 如果项目在两张表中-将在表1中着色 目前,代码几乎可以正常工作,但它会给所有项目上色,并且应该只给两张表中出现的项目上色 表1: Sheet2:您可以看到值:game1、game2、cat4缺失 我想要得到的输出: 到目前为止,我试过: Sub Sample() Dim cell As Range Dim Result For Each cell In Worksheets("She

我试图找出表1中特定范围内的哪些项目写在表2中的a列中。 如果项目在两张表中-将在表1中着色

目前,代码几乎可以正常工作,但它会给所有项目上色,并且应该只给两张表中出现的项目上色

  • 表1:

  • Sheet2:您可以看到值:game1、game2、cat4缺失

  • 我想要得到的输出:

到目前为止,我试过:

Sub Sample()

    Dim cell As Range
    Dim Result

    For Each cell In Worksheets("Sheet1").Range("D2:H9")
        On Error Resume Next
        Result = Application.XLookup(cell, Worksheets("Sheet2").Range("A:A"), 1, True)
        'On Error GoTo 0

       If Not IsEmpty(cell) Then
            'If cell = Result Then
                cell.Font.Bold = True
                cell.Interior.ColorIndex = 4
                cell.Interior.Pattern = xlSolid
            'End If
            Result = ""
        End If
        
        'If cell = "Error 2042" Then
            'nothing found
        'ElseIf cell = Result Then
            'cell.Interior.ColorIndex = 4
        'End If
        
    Next
    
    On Error GoTo 0

End Sub

提前谢谢。

试试这个。普通的
Match
就可以了,我不知道XMATCH有什么好处

您也可以使用条件格式(带或不带VBA)来实现这一点


什么是
XLookup
?确保错误转到0时的
不是注释,或者如果没有错误转到0时的
或正确的错误处理,则绝对不要单独使用
。如果单独使用它,则无法正确调试代码,因为无法看到错误。见@Pᴇʜ-这是365中的一个新的查找函数。@SJR啊,我的糟糕,我仍然在2019版本上。只要单元格不是空的,它不依赖于查找的结果,您的代码就可以进行格式化等操作,我觉得这样做不对。在任何情况下,XMATCH函数都可能更好。此代码仅对sheet2列A中不在范围内的单元格进行格式化。我应该更改什么?错误的方法,请立即尝试。成功!谢谢另外,如果我在sheet1中有超过800行和30列,这是实现脚本的正确方法吗?请你养成接受答案的习惯好吗?对于这么多的数据来说,这应该没问题。
Sub Sample()

Dim cell As Range
Dim Result

For Each cell In Worksheets("Sheet1").Range("D2:H9")
    Result = Application.XMatch(cell, Worksheets("Sheet2").Range("A:A"), 0)
    If Isnumeric(Result) Then 'no match
        cell.Font.Bold = True
        cell.Interior.ColorIndex = 4
        cell.Interior.Pattern = xlSolid
    End If
Next
    
End Sub