我正在尝试在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/