Excel 在两张图纸之间查找
我试图找出表1中特定范围内的哪些项目写在表2中的a列中。 如果项目在两张表中-将在表1中着色 目前,代码几乎可以正常工作,但它会给所有项目上色,并且应该只给两张表中出现的项目上色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:
- 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