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. Linux 保护文件 不给修改

    chatter +i  file 文件不能删除,不能更改,不能移动 chatter -i  file  恢复 lsattr file 查看 ----i--------e-- file 修改会提示: f ...

  2. .NET 并行编程——数据并行

    本文内容 并行编程 数据并行 环境 计算 PI 矩阵相乘 把目录中的全部图片复制到另一个目录 列出指定目录中的所有文件,包括其子目录 最近,对多线程编程,并行编程,异步编程,这三个概念有点晕了,之前我 ...

  3. Android架构初探

    #一 背景点评美团合并之后,业务需要整合,我们部门的几条业务需要往美团平台迁移,为了降低迁移成本,开发和维护成本,以及将来可能要做的单元测试,需要对架构进行相应的调整.之前的代码都堆在Activity ...

  4. Apache Kafka学习 (二) - 多代理(broker)集群

    1. 配置server.properties > cp config/server.properties config/server-1.properties> cp config/ser ...

  5. Spark机器学习(12):神经网络算法

    1. 神经网络基础知识 1.1 神经元 神经网络(Neural Net)是由大量的处理单元相互连接形成的网络.神经元是神经网络的最小单元,神经网络由若干个神经元组成.一个神经元的结构如下: 上面的神经 ...

  6. 基于Centos搭建Python Web 环境搭建教程

    CentOS 7.2 64 位操作系统 安装 setuptools 工具 安装 因为之后我们需要安装 Django ,而 Django 需要用这个工具,所以我们需要先安装 setuptools 工具. ...

  7. Apache学习---多进程处理模块(MPM)原理详解

    查看Apache的模式,可以使用httpd -V命令来查看: 1. prefork MPM prefork模式可以算是很古老但是非常稳定的Apache模式.Apache在启动之初,就预先fork一些子 ...

  8. 12C -- ORA-01033: ORACLE initialization or shutdown in progress

    初装oracle 12.2 rac数据库. 登录RAC数据库中第1节点 $ sqlplus '/as sysdba' SQL> select name,open_mode from v$pdbs ...

  9. Java定时任务示例

    package com.my.timer; import java.util.Date; import java.util.TimerTask; public class myTask extends ...

  10. 大数高精度计算库gmp简介

    1.编译安装,我用的ubuntu18.04 $sudo apt-get install m4 //默认没安装,gmp用这个 $tar -jvxf gmp-.tar.bz2 //解压 $cd gmp- ...