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:=, Header:=xlYes
End Sub

或:个人推荐下面这种写法

Option Explicit
Option Compare Text
Sub 去重()
Dim sSheet As Worksheet
Set sSheet = ActiveSheet
sSheet.Range("A1:A25").EntireRow.RemoveDuplicates Columns:=, Header:=xlYes
End Sub

运行后:

去重复项时忽略大小写,示例

源表:

VBA语句:

Option Explicit
Option Compare Text
Sub 去重()
Dim sSheet As Worksheet
Set sSheet = ActiveSheet
sSheet.Range("A1:H25").RemoveDuplicates Columns:=, Header:=xlYes
End Sub

运行后:

RemoveDuplicates 方法去重规则总结:

a.去重时忽略大小写

b.前或后带空格的项却不做为重复项,无法去重,见上面案例。----- 关于这一点,经验验证:WPS 2019 --- 数据 --- 删除重复项 也是无法去除的,因此RemoveDuplicates 方法和工具菜单的方式去重是一样的效果。

2. 仅根据第2列重复项删除整行

源表:

VBA语句:

Option Explicit
Option Compare Text
Sub 去重()
Dim sSheet As Worksheet
Set sSheet = ActiveSheet
sSheet.Range("A1:H25").RemoveDuplicates Columns:=, Header:=xlYes
End Sub

或:sSheet.Range("A1:H25").RemoveDuplicates Columns:=Array(2), Header:=xlYes

运行后:

3.  仅根据第 1 和 2列 重复项删除整行,能否生效?

源表:

VBA语句:

Option Explicit
Option Compare Text
Sub 去重()
Dim sSheet As Worksheet
Set sSheet = ActiveSheet
sSheet.Range("A1:H25").RemoveDuplicates Columns:=Array(, 2), Header:=xlYes
End Sub

运行后:

发现没有效果,重复项没有去除掉!!

再示例: 要过滤的多列重复项 都处在同一行

源表:

VBA语句:

Option Explicit
Option Compare Text
Sub 去重()
Dim sSheet As Worksheet
Set sSheet = ActiveSheet
sSheet.Range("A1:H25").RemoveDuplicates Columns:=Array(, ), Header:=xlYes
End Sub

运行后:

第1列的重复项和第3列的重复项 处于同行,才会去做移除操作,见上图!

另:

http://www.amarindaz.com/excel-vba-remove-duplicates/    Excel VBA Remove Duplicates Method

Header- It determines whether the given range does contain header or not. User can specify three values in header parameter. They are shown below

Header:=xlYes- Choose this value if given range does contain Header

Header:=xlNo – Choose this value if given Range doesn’t contain header

Header:=xlGuess- Choose this value if you want excel to determine the existence of Header

示例1:Header:=xlYes

源表:

VBA语句:

Option Explicit
Option Compare Text
Sub 去重()
Dim sSheet As Worksheet
Set sSheet = ActiveSheet
sSheet.Range("A1:H25").RemoveDuplicates Columns:=, Header:=xlYes
End Sub

运行后:

第1列 与标题行重复项 没有去除掉,其它行重复项已去除。

示例2:Header:=xlNo

源表:

VBA 语句:

Option Explicit
Option Compare Text
Sub 去重()
Dim sSheet As Worksheet
Set sSheet = ActiveSheet
sSheet.Range("A1:H25").RemoveDuplicates Columns:=, Header:=xlNo
End Sub

运行后:

发现与标题行重复项已去除!

示例3:Header:=xlGuess

源表:

VBA语句:

Option Explicit
Option Compare Text
Sub 去重()
Dim sSheet As Worksheet
Set sSheet = ActiveSheet
sSheet.Range("A1:H25").RemoveDuplicates Columns:=, Header:=xlGuess
End Sub

运行后:

VBA RemoveDuplicates方法去重复项的更多相关文章

  1. [2012-05-31]awk去重复项

    参考http://bbs.chinaunix.net/thread-2309494-1-1.html 10.awk '! a[$0]++' 怎么理解? 这是一个非常经典的去重复项的awk语句,虽然短小 ...

  2. 用泛型的IEqualityComparer<T>接口去重复项

    提供者:porschev 题目:下列数据放在一个List中,当ID和Name都相同时,去掉重复数据 ID Name 1  张三 1  李三 1  小伟 1  李三  2  李四 2  李武 ----- ...

  3. Excel删除重复数据及用公式筛选重复项并标记颜色突出显示

    当表格记录比较多时,常常会有重复数据,而重复记录往往只希望保存一条,因此需要把多余的删除:在 Excel 中,删除重复数据有两种方法,一种是用"删除重复数据"删除,另一种是用&qu ...

  4. js数组和字符串去重复几种方法

    js数组去重复几种方法 第一种:也是最笨的吧. Array.prototype.unique1 = function () { var r = new Array(); label:for(var i ...

  5. ASP.Net【如何合并DataTable,并且去重复方法】

    虽然DataTable.Merge可以很好的实现,但以下代码写出来更好理解 DataTable DataTable1 = new DataTable(); DataTable DataTable2 = ...

  6. Python统计列表中的重复项出现的次数的方法

    本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下:对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现在 ...

  7. js 数组去重复的方法

    数组去重复是js中常用的方法,归纳了四种如下: 1. for + indexOf  去重复 var arr = [3,5,5,4,1,1,2,3,7,2,5]; var target = []; fo ...

  8. 漫谈数组去重复方法(亮点是ES6的新API)

    方法1: 利用遍历的思想来进行. <!DOCTYPE html><html lang="en"><head> <meta charset= ...

  9. Js数据去重复,时间更换格式,cookie,localStorage和sessionStorage的使用等通用方法

    一,数组去重复 function unique(arr) { // 遍历arr,把元素分别放入tmp数组(不存在才放) var tmp = new Array(); for (var i in arr ...

随机推荐

  1. HTML5 Canvas制作雷达图实战

    雷达图又叫蜘蛛网图,是一种对各项数据查看很明显的表现图,在很多游戏中,对游戏中的每个角色的分析图一般也用这种图. 下面,用HTML5的Cavas来实现雷达图. 效果 一.创建Canvas var mW ...

  2. EBS QRCODE

    http://www.swetake.com/qrcode/java/qr_java.html qrcode_java0.50beta10.tar [root@ebs12vis ~]# su - ap ...

  3. 【springboot】【socket】spring boot整合socket,实现服务器端两种消息推送

    参考地址:https://www.cnblogs.com/hhhshct/p/8849449.html

  4. Ubuntu下升级Git以及获取ssh keys的代码

    今天开始用的git,记下获取ssh keys 的代码 ? 1 2 3 ssh-keygen -t rsa -C "your_email@example.com" # Enter f ...

  5. Win-Sshfs无法连ubuntu1404原因

    ubunbtu 默认不允许root远程访问,设置为允许就可以了 1)vi /etc/ssh/sshd_config,将PermitRootLogin的值改成yes,并保存 PermitRootLogi ...

  6. Spring入门教程:通过MyEclipse开发第一个Spring项目

    Animal.java package com.project; public class Animal { private String name; public String getName() ...

  7. cmake 常用变量和常用环境变量查表手册---整理 .

    一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定义变量的方式: 主要有隐式定义和显式定义两种 ...

  8. 无意识(无知)-->有意识-->进入潜意识-->无意识(本能状态)

    无意识(无知)-->有意识-->进入潜意识-->无意识(本能状态) 1. 从“无意识-->有意识”的两个重要内容是“反省”+“要努力学习”,估计有80%的人无法跨过这一步 2. ...

  9. Ubuntu图形界面环境下启动应该程序:

    1.先说下Ubuntu14.04系统开机紫框的问题: Grub theme:黑色屏幕出现紫色边框 There's a minor typo on the grub theme which produc ...

  10. 在GitHub中下载的项目,如何运行

    1.查看说明文档README-CN.md 2.大概流程 1.安装依赖 cnpm install 2.启动服务 npm run dev