RemoveDuplicates后边必须跟参数否则不起作用
ActiveSheet.Range("G21:R36").RemoveDuplicates Columns:=12, Header:=xlYes
其中Columns参数指定要删除重复项的列,如果是1的话,那么第一列中重复项所在行都会被删除,如果是2则只有1,2两列均重复的行才会被删除,以此类推,你的区域12列,那么只有12列均重复的行会被删除。
如果想在12列中只根据某几列的重复来删除,比如,1 3 7列。那么参数写为Columns:=Array(1,3,7)
案例介绍:
1. 仅根据第1列重复项删除整行
源表:黄色标记的都是重复项
VBA语句:
Option Explicit Option Compare Text Sub 去重() Dim sSheet As Worksheet Set sSheet = ActiveSheet sSheet.Range("A1:H25").RemoveDuplicates Columns:=1, Header:=xlYes End Sub
或:个人推荐下面这种写法
Option Explicit Option Compare Text Sub 去重() Dim sSheet As Worksheet Set sSheet = ActiveSheet sSheet.Range("A1:A25").EntireRow.RemoveDuplicates Columns:=1, Header:=xlYes End Sub
运行后: