如何删除分配给 VBA/Excel 中特定名称的重复值?

How do you delete duplicate values assigned to a specific name in VBA/Excel?

例如我下面有Table

Name Product
Tom Ice Cream
Tom Ice Cream
Tom Toys
Jack Ice Cream

我正在尝试删除与某个名称关联的重复产品,因此我需要删除多余的 Tom and Ice Cream 行,但要确保保留 Jack and Ice Cream 行。

我在 VBA 中也使用了以下代码来尝试循环过滤器以删除重复项,但它似乎不起作用,因为我不能只 select 使用删除重复项时的排序范围

Sub Delete_Duplicates()

Dim Cell As Range

Worksheetname.Range("A1:B1").Select
Selection.AutoFilter
For Each Cell In Worksheetname("E1").End(xlDown)
    ActiveSheet.Range("$A:$B70").AutoFilter Field:=1, Criteria1:=Cell
    ActiveSheet.Range("$A", Range("B2").End(xlDown)).RemoveDuplicates Columns:=2, Header:=xlYes
Next Cell

End Sub

非常欢迎使用 VBA 或仅 Excel 的任何其他方法

您可以像这样修复您的代码:

Sub Delete_Duplicates()
ActiveSheet.Range("$A", Range("B2").End(xlDown)).RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
End Sub

正如@SiddharthRout 所建议的,正确的方法是:

Sub Delete_Duplicates()
Dim LR As Long
'we get position of last non empty cell in column B
LR = Range("B" & Rows.Count).End(xlUp).Row

'remove duplicates
ActiveSheet.Range("$A:$B$" & LR).RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
End Sub

尝试使用第二个,确实更好,因为Range("B2").End(xlDown))并不总是returnB列中的最后一个非空单元格。