此问题涉及三张表(A,B,C)
工作表A包含数据表,而A列中包含名称列表
工作表B包含一个数据表(类似于与B不同),而在A列中有一个名称列表
表C是名为“匹配”的表格。
我已经有一个宏从A和B中复制A列中的名称,并将它们粘贴在C表的A列中。
由于来自工作表A和工作表B的数据的性质,完成此操作后会有几个重复。
目前我必须在Sheet C中手动找到Duplicates,然后进入Sheet B并删除具有Duplicate Name的行。
我想要任何可能有助于解决此问题的公式。具体来说,一个公式在工作表C上找到重复值,然后转到工作表B并删除整行数据。
更新:见下面的评论
答案 0 :(得分:0)
在Excel 2010中测试的已更新评论的建议解决方案
Private Sub removeDuplicates()
Dim lastCellSheetA As Range, lastCellSheetB As Range
Dim cellA As Range, cellB As Range
'dynamically find the last cell with values
Set lastCellSheetA = Worksheets("SheetA").Range("A1").End(xlDown)
Set lastCellSheetB = Worksheets("SheetB").Range("A1").End(xlDown)
For Each cellA In Worksheets("SheetA").Range("A1", lastCellSheetA).cells
For Each cellB In Worksheets("SheetB").Range("A1", lastCellSheetB).cells
'if values are case sensitive, remove the UCase method from both sides of the equality comparison
If UCase(cellB.Value) = UCase(cellA.Value) Then
Debug.Print "deleting row " & cellB.Row & " because duplicate value of " & cellB.Value & " found"
cellB.EntireRow.Delete
End If
Next cellB
Next cellA
End Sub
答案 1 :(得分:0)
ScreenUpdating = False
FirstItem = Sheets("FTE+Vendor").Range("A2").Value
SecondItem = Sheets("Vendor").Range("A2").Value
Offsetcount1 = 0
Offsetcount2 = 0
Do While FirstItem <> ""
If FirstItem = SecondItem Then
Sheets("Vendor").Select
Range("A2").Select
ActiveCell.Offset(Offsetcount2, 0).Select
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
Offsetcount2 = 0
Sheets("Vendor").Select
Range("A2").Select
SecondItem = ActiveCell.Offset(Offsetcount2, 0).Value
Offsetcount1 = Offsetcount1 + 1
Sheets("FTE+Vendor").Select
Range("A2").Select
FirstItem = ActiveCell.Offset(Offsetcount1, 0).Value
ElseIf FirstItem <> SecondItem Then
Offsetcount2 = Offsetcount2 + 1
Sheets("Vendor").Select
Range("A2").Select
SecondItem = ActiveCell.Offset(Offsetcount2, 0).Value
If SecondItem = "" Then
Offsetcount1 = Offsetcount1 + 1
Sheets("FTE+Vendor").Select
Range("A2").Select
FirstItem = ActiveCell.Offset(Offsetcount1, 0).Value
Offsetcount2 = 0
Sheets("Vendor").Select
Range("A2").Select
SecondItem = ActiveCell.Offset(Offsetcount2, 0).Value
End If
End If
Loop
ScreenUpdating = True 结束子