如果没有重复,则RemoveDuplicates返回错误

时间:2019-11-01 19:25:20

标签: excel vba

下面显示的代码来自此示例:excel: check for duplicate rows based on 3 columns and keep one row

Sub Testing()

Dim lastrow As Long

    With ThisWorkbook.Worksheets(1)
        If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
            lastrow = .Cells.Find(What:="*", _
                          After:=.Range("A1"), _
                          Lookat:=xlPart, _
                          LookIn:=xlFormulas, _
                          SearchOrder:=xlByRows, _
                          SearchDirection:=xlPrevious, _
                          MatchCase:=False).Row
        Else
            lastrow = 1
        End If            

        .Range("A1:M" & lastrow).RemoveDuplicates Columns:=Array(1, 4, 5, 6, 7, 11), _
            Header:=xlYes               
    End With 
End Sub

有重复项时,代码工作正常。但是,如果没有,则返回错误。因此,我想知道是否有一种方法可以快速计算重复项的数量,也许要加上条件或类似的东西。

1 个答案:

答案 0 :(得分:2)

恭喜!这似乎是Excel的错误,当过滤没有初始值的列时会出现。要复制,几乎可以在 Excel工作表上写以下数据(新部分很重要):

enter image description here

然后运行代码,并出现错误1004。以某种方式,VBA不满意对列711进行过滤,尽管默认情况下它们中没有数据。然后将字段的大小增加到 M

enter image description here

然后再次运行它。有用。现在,如第一张图片所示,删除数据。再次运行。可以。