【问题标题】:Find multiple non-matching cells and copy to new worksheet查找多个不匹配的单元格并复制到新工作表
【发布时间】:2021-10-24 07:37:28
【问题描述】:

我想比较工作表 2 和工作表 1 中的单元格。

首先检查工作表 1 和 2 中区域 A 中的匹配单元格。

接下来,如果没有匹配项,则检查工作表 1 和 2 中区域 B 中的匹配单元格,否则,如果存在匹配项,则检查区域 A 中的下一个单元格。

如果也没有匹配项,请将工作表 2 中区域 A 和 B 中的这些不匹配单元格复制到新工作表 Worksheet 3。

这是我的工作表布局:

工作表 1 -

工作表 2 -

工作表 3 -

这是我的代码(未按预期工作):

Dim Cl As Range, Rng As Range, Dic As Object

Set Dic = CreateObject("scripting.dictionary")

With Dic
For Each Cl In MyWorkSheet1Name.Range("A2:B" & MyWorkSheet1Name.Range("B" & Rows.Count).End(xlUp))
    .Item(Cl.Value) = Empty
Next Cl
For Each Cl In MyWorkSheet2Name.Range("A2:B" & MyWorkSheet2Name.Range("B" & Rows.Count).End(xlUp))
    If Not .Exists(Cl.Value) Then
    If Rng Is Nothing Then Set Rng = Cl Else Set Rng = Union(Rng, Cl)
    End If
Next Cl
End With

If Not Rng Is Nothing Then
    Rng.EntireRow.Copy MyWorkSheet3Name.Range("A" & Rows.Count).End(xlUp)
End If

如何让代码按预期运行?

非常感谢!

【问题讨论】:

    标签: excel vba dictionary scripting


    【解决方案1】:

    你可以试试这个:

    Dim lRow1 As Long, lRow2 As Long
    
    lRow1 = Sheets(1).Range("A" & Sheets(1).Rows.Count).End(xlUp).Row
    lRow2 = Sheets(2).Range("A" & Sheets(2).Rows.Count).End(xlUp).Row
    
    Application.ScreenUpdating = False
    
    With Sheets(3)
        Sheets(1).Range("A1:B" & lRow1).Copy Destination:=.Range("A1")
        Sheets(2).Range("A2:B" & lRow2).Copy Destination:=.Range("A" & lRow1 + 1)
        
        .Range("C2").Formula = "=COUNTIFS($A$2:$A$" & lRow1 + lRow2 - 1 & ",A2,$B$2:$B$" & lRow1 + lRow2 - 1 & ",B2)"
        .Range("C2").AutoFill Destination:=.Range("C2:C" & lRow1 + lRow2 - 1)
        
        .Range("A1").AutoFilter Field:=3, Criteria1:=">1"
        .Rows("2:" & lRow1 + lRow2 - 1).SpecialCells(xlCellTypeVisible).Delete
        .Range("A1").AutoFilter
        .Columns(3).EntireColumn.Delete
    End With
    
    Application.ScreenUpdating = True
    

    【讨论】:

    • 感谢您的解决方案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    相关资源
    最近更新 更多