用于从整个工作表中删除重复项的功能

问题描述 投票:1回答:1

我无法让下面的功能工作。理想情况下,我想创建一个函数,它将自动识别工作表中已使用的列数,然后将其作为数组传递给删除重复项。我不明白为什么它不起作用。我可以确认这些工作表有标题和多行。当我尝试使用数组删除重复项时,我继续收到错误5。

        ReDim colary(1 To wbDestination.Sheets(1).Range("XX1").End(xlToLeft).Column)
        For i = 1 To UBound(colary)
            colary(i) = i
        Next i

        wbDestination.Sheets(1).Range("$A$1:" & wbDestination.Sheets(1).Range("A1").SpecialCells(xlCellTypeLastCell).Address).RemoveDuplicates Columns:=Evaluate(colary), Header:=xlYes
excel-vba vba excel
1个回答
1
投票

既然你想要创建一个函数,这是一个方法

Sub RemoveDupes(ByVal entireRng As Range, ByVal col As Integer, Optional ByVal containsHeaders As Boolean = True)
    Dim retVal As Integer
    If containsHeaders = True Then
        retVal = xlYes
    Else
        retVal = xlNo
    End If
    entireRng.RemoveDuplicates Columns:=col, Header:=retVal
End Sub

这个例程并不是简单的输入工作,但你可以根据自己的意愿使用它。

如果要检查多个列,那么对于col变量,您可以传递一个数组。

© www.soinside.com 2019 - 2024. All rights reserved.