Excel VBA调用RemoveDuplicates删除区域重复值不生效如何解决
问题原因
两处核心配置遗漏导致去重不生效:
- 没有给
RemoveDuplicates方法传入必填的Columns(去重依据列索引)和Header(表头声明)参数,缺少规则时方法不会触发实际去重逻辑 - 你当前代码选中的范围仅包含第1行的10个单元格,单条数据不存在重复项,自然不会删除任何内容
修正后的代码示例
LastColumn = 10 ' 构造去重依据列数组:示例为按选中的10列全部内容组合去重 Dim colArr() As Variant ReDim colArr(0 To LastColumn - 1) For i = 0 To LastColumn - 1 colArr(i) = i + 1 Next ' 选中AY列开始的10列整列执行去重,也可以替换为你的实际数据行范围 ws.Range(ws.Cells(1, "AY"), ws.Cells(1, ws.Range("AY1").Column + LastColumn - 1)).EntireColumn.RemoveDuplicates _ Columns:=colArr, _ Header:=xlYes ' 无表头请修改为 xlNo
注意事项
- 若仅需要按指定列去重,可直接传入列索引数组,比如仅按选中范围的第1列、第2列去重,可将
Columns参数改写为Columns:=Array(1, 2) Header参数必须和实际数据结构匹配,参数错误会导致去重范围识别异常
内容的提问来源于stack exchange,提问作者TourEiffel
相关产品推荐
相关产品推荐

