Hid*_*eek 11 excel vba excel-vba excel-2013
我正在尝试删除excel 2013 VBA中的重复项.但我收到错误"对象不支持此属性或方法".问题是我没有静态范围可供选择.我想删除列heaader'abcd'中的重复项.
Cells.Find(what:="abcd").Activate
ActiveCell.EntireColumn.Select
Set rng = Selection
ActiveSheet.rng.RemoveDuplicates
Run Code Online (Sandbox Code Playgroud)
小智 14
您需要告诉Range.RemoveDuplicates方法使用哪个列.另外,既然你已经表示你有一个标题行,你应该告诉.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
Run Code Online (Sandbox Code Playgroud)
您的原始代码似乎想要从单个列中删除重复项而忽略周围的数据.这种情况是非典型的,我已经包含了周围的数据,因此.RemoveDuplicates进程不会扰乱您的数据.如果您真的想将RemoveDuplicates进程隔离到单个列,请回发评论.
从单个列中删除重复项
Sub removeDuplicate()
'removeDuplicate Macro
Columns("A:A").Select
ActiveSheet.Range("$A$1:$A$117").RemoveDuplicates Columns:=Array(1), _
Header:=xlNo
Range("A1").Select
End Sub
Run Code Online (Sandbox Code Playgroud)
如果您有标题,请使用 Header:=xlYes
根据您的要求增加范围。
您可以像这样将其设置为1000:
ActiveSheet.Range("$A$1:$A$1000")
更多信息在这里
| 归档时间: |
|
| 查看次数: |
111144 次 |
| 最近记录: |