当前位置:首页 > 实用技巧 >

excel存在一个或多个循环如何删除(excel怎么把很多重复出现的删除)

来源:原点资讯(www.yd166.com)时间:2023-11-04 06:09:40作者:YD166手机阅读>>

今日的内容是“VBA之EXCEL应用”的第七章“循环在VBA中的利用”。这讲是第五节“利用循环删除重复项”。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,案例众多。大家可以非常容易的掌握相关的知识,这套教程面向初学人员,共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。

第五节 利用循环删除重复项

大家好,我们这讲讲解利用循环删除重复项的方法。在之前的讲解中,我曾经提过,循环是最强大的编程技术之一,如果不用VBA的循环,在工作表中只能用迭代,但迭代的方案会大大降低工作表的功效,当行数较多时,这种运算速度是很难被我们认可的,而用了VBA中的循环可以避免这些问题。这讲我们讲利用循环处理删除重复项的操作。

1 应用场景介绍

如下面的工作表的A列,有一系列的数字,我们要在其中选择出不重复的项,回填到B列:

excel存在一个或多个循环如何删除,excel怎么把很多重复出现的删除(1)

这种回填工作,如果在工作表中处理该如何操作呢?

首选的最为有效的当然是“数据透视表”,这个功能是EXCEL自带的,只要我们选择上这列,然后做数据透视处理即可得到不重复的数据。

再者,可以用计数函数处理,例如我们录入下面公式:=COUNTIF($A$1:A1,"="&A1) 那么就可以求出A1单元格值的个数,然后我们筛选出个数为1的值即可求出不重复的值了。

但是工作表中的计算有着很大的局限性,无论是哪一种算法,面对大量的数据时是无能为力的。而且数据透视表是无法处理无标题行数据的。

我们今日讲解VBA的方法。

2 用循环判断法排重的思路分析

1)我们在B列的第一个单元格中放入A列的第一个数值。这个数值肯定是不重复的。

2)利用一个布尔型的变量作为一个判断数值,初始值为TRUE.

3) 从A列中的第二个单元格开始,每个数值和B列进行比较,如果有相同的那么就令上面的布尔变量值为FALSE.

4) 当A列的单元格循环结束后,如果那个布尔变量值仍为TRUE,那么就将这个A列的值写入B列,如果为FALSE,就不写入。

利用这种思路,我们就可以求出A列不重复的数值了,当然这种方法只是利用的思路之一,在VBA中可利用的方法非常多,对于排重而言,最为方便的当然是字典[1].当然,我们这讲的内容是循环,我们来看下面的代码及分析。

3 实现用循环判断法排重的代码及代码解读

下面看我的代码:

Sub mynzE() '删除重复项

Dim myZJ As Boolean

Sheets("sheet5").Select

Columns("B").Clear

Cells(1, 2).Value = Cells(1, 1).Value

k = 1

i = 1

Do While Cells(i, 1) <> ""

Cells(i, 1).Select

myZJ = True

For j = 1 To k

If Cells(i, 1).Value = Cells(j, 2).Value Then

myZJ = False

End If

Next

If myZJ = True Then

Cells(k 1, 2).Value = Cells(i, 1).Value

k = k 1

End If

myZJ = True

i = i 1

Loop

MsgBox ("OK!")

End Sub

代码截图:

excel存在一个或多个循环如何删除,excel怎么把很多重复出现的删除(2)

代码解读:

1)Cells(1, 2).Value = Cells(1, 1).Value 先写入第一个数值

2) Do While Cells(i, 1) <> "" 在A列建立一个循环

3)myZJ = True 这个变量就是写入B列数据的开关,初始值是True

4)For j = 1 To k

If Cells(i, 1).Value = Cells(j, 2).Value Then

myZJ = False

End If

Next

以上代码在B列建立了一个循环,用以判断是否有值和Cells(i, 1)单元格的值相同,如果有那么myZJ = False

5) If myZJ = True Then

Cells(k 1, 2).Value = Cells(i, 1).Value

k = k 1

End If

如果myZJ = True,那么将A列的数值写入B列。

4 实现用循环判断法排重的代码实现效果。

我们看一下代码的运行效果,

excel存在一个或多个循环如何删除,excel怎么把很多重复出现的删除(3)

我们添加几个数据再次运行:

excel存在一个或多个循环如何删除,excel怎么把很多重复出现的删除(4)

注释:[1] 关于字典排重,大家可以参考我的第三套教程《VBA数组与字典解决方案》,是对字典的详细讲解。

今日内容回向:

1) 循环比较数据排重的思路是怎样的?

2) 你还有哪些方法可以利用实现数据排重?

excel存在一个或多个循环如何删除,excel怎么把很多重复出现的删除(5)

本讲内容参考程序文件:工作簿07.xlsm

分享成果,随喜正能量

VBA的应用及学习方法:

VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!

我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了七部VBA专门教程。

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,提供的程序文件更是一座不可多得的代码宝库,是初学及中级人员必备教程;目前这套教程提供的版本是修订第二版,程序文件通过32位和64位两种OFFICE系统测试。

第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。目前这套教程提供的是修订第一版教程,程序文件通过32位和64位两种OFFICE系统测试。

第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程(修订一版)的视频讲解,视频更易接受。

第五套:VBA中类的解读和利用是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。

第六套教程:VBA信息获取与处理,是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。

第七套教程:VBA之EXCEL应用 这是一部初级教程这部教程共三册,从从创建宏、对话框、工作簿和工作表对象、单元格对象等基础内容讲起,到循环结构、错误处理、字符串操作、日期和时间、事件、数组应用,函数过程等方面,一直讲解到控件和窗体对象的应用都是我们提高自己EXCEL水平的必须。

以上各教程学习顺序:7→1(或者4)→3→2→6→5。其中第四套是对第一套的视频讲解,所以第一和第四只选其一即可。

栏目热文

excel怎么把循环引用删掉(excel中出现循环引用怎么消除)

excel怎么把循环引用删掉(excel中出现循环引用怎么消除)

人们可能出于各种原因向 Excel 单元格添加单引号或撇号 (‘)。一个常见的原因是将单元格中的值视为文本而不是数字或日...

2023-11-04 05:52:09查看全文 >>

五菱荣光车锁怎么拆(五菱荣光锁拆卸教程)

五菱荣光车锁怎么拆(五菱荣光锁拆卸教程)

今天要聊的是五菱荣光,可能会有人认为它用料简陋,舒适性也不好,但是对于从事货运行业的小伙伴而言,这款车可是“神车”般的存...

2023-11-04 06:00:42查看全文 >>

五菱荣光双排挡把怎么拆(五菱荣光带锁的挡把怎么拆)

五菱荣光双排挡把怎么拆(五菱荣光带锁的挡把怎么拆)

文:懂车帝原创 陈旭明[懂车帝原创 产品] 近日,懂车帝从五菱专用车官方获悉,五菱荣光小卡双排翼开启售货车已正式上市。该...

2023-11-04 06:23:06查看全文 >>

五菱荣光挡把防尘盖怎么拆(五菱荣光挡杆防尘罩拆卸视频)

五菱荣光挡把防尘盖怎么拆(五菱荣光挡杆防尘罩拆卸视频)

文:懂车帝原创 陈旭明[懂车帝原创 产品] 5月9日,五菱品牌宣布旗下首款电动物流车——五菱荣光电动车正式上市。新车提供...

2023-11-04 05:42:38查看全文 >>

五菱荣光拆手刹拉线视频(五菱荣光手刹拉线母线更换视频)

五菱荣光拆手刹拉线视频(五菱荣光手刹拉线母线更换视频)

最近有网友问到五菱宏光手刹放了后轮还是抱死怎么解决?我来给车主解答下,出现这种情况,可能有以下三种原因。第一种原因:手刹...

2023-11-04 06:04:32查看全文 >>

怎么取消掉excel表格里的循环应用(怎么取消excel循环)

怎么取消掉excel表格里的循环应用(怎么取消excel循环)

我们今天分享的内容是批量取消隐藏工作表,来看看操作过程:按住Ctrl键,点击鼠标分别选取需要隐藏的工作表标签(如果需要隐...

2023-11-04 06:08:24查看全文 >>

excel如何设置一次性关掉所有页面(excel表格怎么关闭多出的页面)

excel如何设置一次性关掉所有页面(excel表格怎么关闭多出的页面)

“如果你每天和Excel打交道,很有可能你会同时打开多个Excel文档进行跨表操作。可到了一天结束,你想要关机回家前,那...

2023-11-04 05:58:46查看全文 >>

excel怎么把重复的删除一个(excel怎么把重复的删掉只留一个)

excel怎么把重复的删除一个(excel怎么把重复的删掉只留一个)

在实际的工作中,经常要对工作表中重复的数据进行删除,如若数据行只有几条,则可通过人工查找出来,如若数据行较多,这种方法...

2023-11-04 06:06:40查看全文 >>

怎么把excel里重复的删掉(怎样把excel中重复的全部删除)

怎么把excel里重复的删掉(怎样把excel中重复的全部删除)

我是【桃大喵学习记】,点击右上方“关注”,每天为你分享职场办公软件使用技巧干货在日常工作中我们经常需要对Excel表格数...

2023-11-04 06:29:28查看全文 >>

excel怎么消除循环模式(excel怎么编辑条件循环)

excel怎么消除循环模式(excel怎么编辑条件循环)

大家好,今天给大家分享的是一个很头疼的问题-Excel循环引用。一、循环引用原因。产生循环引用的原因即公式直接或间接引用...

2023-11-04 05:43:47查看全文 >>

文档排行