如何从列表中删除重复项?

时间:2018-10-04 14:53:17

标签: excel vba

我有一个宏,该宏复制“ B4:B50”列中的所有“非空白”单元格并将其粘贴到“合并的跟踪器”工作表中的单元格“ B4”中。

这将返回我要删除的重复数据。

Sub CopyRangeFromMultiWorksheets()

Dim sh As Worksheet
Dim DestSh As Worksheet
Dim Last As Long

With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

Set DestSh = ThisWorkbook.Worksheets("Consolidated Tracker")

For Each sh In ActiveWorkbook.Worksheets
    If sh.Name <> DestSh.Name Then
        Last = WorksheetFunction.Max(4, DestSh.Range("B" & Rows.Count).End(xlUp).Row)
        sh.Range("B4:B50").Copy DestSh.Range("B" & Last)
    End If
Next

With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With

End Sub

我试图通过添加以下内容来适应Range.RemoveDuplicates Method (Excel)

DestSh("B4:B10000").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes

For Each循环之后,请先删除重复项,然后再尝试找出如何删除空格,我认为它将留在后面。

我得到一个

  

运行时错误'438':对象不支持此属性或方法

我认为这意味着我不能将DestSh用作工作表。我认为工作表不支持RemoveDuplicate。

1 个答案:

答案 0 :(得分:1)

如果只有一列数据,请尝试:

DestSh.Range("B4:B10000").RemoveDuplicates Columns:=1, Header:=xlYes