Excel VBA 8.1你只会针对一列获取唯一值?VBA帮你轻松针对多列取唯一值

你只会针对一列获取唯一值?VBA帮你轻松针对多列取唯一值


点击上方“Excel和VBA”,选择“置顶公众号”

致力于原创分享Excel的相关知识,源码,源文件打包提供

一起学习,一起进步~~


昨天我们终于完成了第7系列的内容的分享,关于VBA代码在工作表中的运用,我们前前后后分享了80个小节,也是出乎了我最开始的预料,本来预想中应该很快就可以接触的,没想到写着写着写了那么多,很多的小伙伴都想知道我是不是从基础开始一点点的讲解的,我这里想说的就是,不一定是基础,但是一定是日常工作中最常用,最实用的一些场景,如果掌握了日常工作中的操作应该不成为问题了,所有源码的汇总和分享,后续将会在专栏中和大家见面。

好了废话有点多,今天我们开始进入第八系列的分享,本系列的主题就是单元格,所有和单元格操作相关的一些知识点,将会在这一系列铺展开,今天我们来学习下如何获取单元格某一列数据的唯一值。

场景说明

获取某列的唯一值,在我们日常工作中还是很常见的操作的, 有时候碰到重复的数据的时候,我们需要提取诶一直来进行计算和分析,不过大家都是到Excel自身并没有提取唯一值的功能,只有通过条件格式提取重复值,然后我们再删除其中的重复值保留一个唯一值的方式来获得去重

细细算下来,这个操作有不少个步骤,在之前操作的过程中,如果碰到数据比较大的话,筛选重复项的时候还会出现卡顿的情况,既然如此,我们就来尝试用VBA写一个方法,轻松的获得唯一值的方法。

代码区

其实通过VBA获得唯一值的方法有很多种,今天我们学习其中一种,RemoveDuplicates方法来获得唯一值

其实如果大家记忆好的话,在上一系列哦我们进行工作表的操作的时候,其实也用到过这个方法,今天我们来详细的展开。

这是我们今天的数据源,为了展示效果,这里我在A列总共填充了104875个数据,我们来提取下唯一值,将结果展示在C列。

Sub test()Dim l&l = Cells(Rows.Count, 1).End(xlUp).RowWith Range(Cells(2, 3), Cells(l, 3)) Range(Cells(2, 1), Cells(l, 1)).Copy Cells(2, 3) .RemoveDuplicates 1, xlYesEnd WithEnd Sub

其实代码非常的简单

直接来看看效果

代码解析

来,既然已经实现了效果,那么我们来学习下代码

今天的代码很简单,只有一个知识点,就是RemoveDuplicates方法的使用,他是在VBA中获得去单元格唯一值的一个比较方便的方法,

他的好处如下:1.代码简单 2.操作方便

当然他也有缺点 1.破坏原始数据

这是最重要也是最要命的一点,如果你的数据原始数据非常的重要的话,最好是将数据备份之后在使用此方法,或者是和我一样

想将数据复制到另外一列,在进行或取唯一值的操作。

.RemoveDuplicates 1, xlYes

可以直接使用这个方法,详细的语法结果,我这里就不讲了,因为大家可能对这个结果并不太感兴趣,我们需要带入实际的工作中场景中来使用就好。

这里掌握两个参数的用法,

*1,代表的就是1列,如果你需要针对多列,这里就不能写1了。而针对多列的操作,我们放在下一节*xlYes,代表的就是忽略表头的意思,表头不参与计算

其实很多的小伙伴一定都非常的疑惑这个表头不参与计算的概念,其实我当初学习的时候也是纠结了很久,我们直接用例子来说明大家或许会更加的明白

如果不忽略表头呢?

今天的知识,大家GET了吗嘛

==========================

本节课的案例源码已经上传,需要的小伙伴后台私信“8-1-E3”,希望大家多支持~~,多多关注 ~ ~

好了,明晚21:00,准时再见!

因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。

(0)

相关推荐