这个问题可以通过使用VLOOKUP函数来解决。VLOOKUP函数可以在一个工作簿中查找另一个工作簿中的数据,并返回匹配值。以下是一个示例代码,它可以将来自Sheet A的数据与来自Sheet B的数据进行比较,并删除Sheet B中的任何重复行:
Sub CompareSheets() Dim wsA As Worksheet Dim wsB As Worksheet Dim lastRowA As Long Dim lastRowB As Long
Set wsA = ThisWorkbook.Sheets("Sheet A")
Set wsB = ThisWorkbook.Sheets("Sheet B")
lastRowA = wsA.Cells(Rows.Count, 1).End(xlUp).Row
lastRowB = wsB.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRowB
If Application.WorksheetFunction.CountIf(wsA.Range("A1:A" & lastRowA), wsB.Range("A" & i).Value) > 0 _
And Application.WorksheetFunction.CountIf(wsB.Range("A1:A" & i - 1), wsB.Range("A" & i).Value) = 0 Then
wsB.Range("A" & i).EntireRow.Delete
End If
Next i
End Sub
这个代码会遍历Sheet B中的每一行,检查其值是否在Sheet A中出现。如果它在Sheet A中出现且在Sheet B中没有出现过,则将其整行删除。要运行此代码,请将其复制并粘贴到VBA窗口中,然后按F5键运行即可。注意,这个代码仅适用于Sheet A和Sheet B中的第一列存在匹配值的情况。