移除重复值,使用VBA的RemoveDuplicates方法

您所在的位置:网站首页 excel字符串合并VBA 移除重复值,使用VBA的RemoveDuplicates方法

移除重复值,使用VBA的RemoveDuplicates方法

2023-12-17 20:28| 来源: 网络整理| 查看: 265

查找重复值、移除重复值,都是Excel中的经典问题,可以使用高级筛选功能,也可以使用复杂的公式,还可以使用VBA。

在VBA中,也有多种方式可以移除重复值,这里介绍RemoveDuplicates方法,一个简洁实用的方法。

示例数据如下图1所示,要求移除数据区域A1:D7中第3列(列C)中的重复值。

图1

实现的VBA代码如下:

Sub RemoveDuplicates() Dim rngRange As Range Dim lngLastRow As Long lngLastRow = ActiveSheet.Range("A" &Rows.Count).End(xlUp).Row Set rngRange = ActiveSheet.Range("A1:D" & lngLastRow) rngRange.RemoveDuplicates Columns:=3, Header:=xlYes End Sub

很简单!实际上,如果采用硬编码的话,一行代码即可完成:

ActiveSheet.Range("A1:D7").RemoveDuplicates Columns:=3, Header:=xlYes

RemoveDuplicates方法的参数

从上面的示例可以看出,RemoveDuplicates方法接受2个参数:Columns和Header。其中,参数Columns是必需的,指定想要移除重复值的列。注意,可以指定多列。如果想要指定多个列,使用Array函数:

Range("A1:E15").RemoveDuplicates Columns:=Array(3, 5), Header:=xlYes

此时,如果这两列中的值组合是重复的,则其所在行将会被移除。

参数Header可选,默认值是xlNo,即不包含标题行。也就是说,该参数告诉RemoveDuplicates方法数据区域是否包含标题行。可以使用3个值:xlYes,xlNo和xlGuess。

示例:获取每个超市中销售量最多的区域

下面的数据是各超市在不同区域的销售量,已经按照销售量进行了统一排名,现在要获取每个超市销售量最多的区域,也就是说对于列C中重复出现的超市名称,只需保留第1次出现的超市名称的数据。

图2

这种情形使用RemoveDuplicates方法是再合适不过了。只需要一行代码:

Range("A1:D15").RemoveDuplicates Columns:=3, Header:=xlYes 结果如下图3所示。

图3

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

学习记录:2022.2.13 17:40-18:30 《普林斯顿微积分读本(修订版)》第9章 指数函数和对数函数 9.1基础知识



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3