我正在尝试在excel 2013 VBA中删除重复项。但出现错误“对象不支持此属性或方法”。问题是我没有静态范围可供选择。我想从列heaader'abcd'中删除重复项。

Cells.Find(what:="abcd").Activate
ActiveCell.EntireColumn.Select
Set rng = Selection
ActiveSheet.rng.RemoveDuplicates

最佳答案

您需要告诉Range.RemoveDuplicates method使用哪一列。另外,由于您已经表示自己有标题行,因此应该告诉.RemoveDuplicates方法。

Sub dedupe_abcd()
    Dim icol As Long

    With Sheets("Sheet1")   '<-set this worksheet reference properly!
        icol = Application.Match("abcd", .Rows(1), 0)
        With .Cells(1, 1).CurrentRegion
            .RemoveDuplicates Columns:=icol, Header:=xlYes
        End With
    End With
End Sub

您的原始代码似乎想从单个列中删除重复项,而忽略周围的数据。这种情况是非典型的,并且我包括了周围的数据,因此.RemoveDuplicates进程不会加扰您的数据。如果您确实想将RemoveDuplicates流程隔离在单个列中,请发表评论。

关于vba - 从Excel VBA中的单元格区域中删除重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31631231/

10-09 05:53