VBA代码解决方案第二十四讲:EXCEL中,如何删除重复数据行

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的"积木编程"思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是VBA代码解决方案第二十四讲:EXCEL中,如何删除重复数据行

【分享成果,随喜正能量】129 爱出者爱返,福往者福来。怀揣一颗善良的心,本本分分,坦坦荡荡,多去帮助需要的人,坚持善良做人,才能不负于人,不负自己。。

第二十四讲 EXCEL中,如何删除重复数据行

各位好,今天开始讲VBA代码解决方案的二十四讲:在EXCEL中,如何借助于代码来完成删除重复行的工作。在实际的工作中这个工作是经常用到的,判断有没有重复的数据,是EXCEL数据统计中非常重要的工作的工作之一,也是经常处理的工作之一。如果掌握了这个技巧,无形中会提高自己的工作效率,而且还可以提高工作的准确性。

1 应用场景的具体分析及Countif函数

实例:在实际应用中,可能需要删除工作表中A列的重复内容而只保留一行,如何来解决这个问题呢?可以借助工作表CountIf函数来完成. 我们先来讲解一下Countif函数.

  • Countif函数: 是Microsoft Excel中对指定区域中符合指定条件的单元格计数的一个函数,在WPS,Excel2003和Excel2007等版本中均可使用。

语法规则如下:countif(range,criteria)

参数:

a) range 要计算其中非空单元格数目的区域

b) criteria 以数字、表达式或文本形式定义的条件

2 删除重复数据行的代码及代码解读

在讲解完这个函数后,我们来看代码:

Sub mynz_24() '第24讲 EXCEL中,如何删除重复数据行

Dim r As Integer

Dim i As Integer

With Sheets("24")

r = .A65536.End(xlUp).Row

For i = r To 1 Step -1

If WorksheetFunction.CountIf(.Columns(1), .Cells(i, 1)) > 1 Then

.Rows(i).Delete

End If

Next

End With

End Sub

代码截图:

代码解析:mynz_24过程删除工作表A列重复单元格所在的整行内容,只保留一行。

  1. 第5行代码取得工作表中A列的最后一个非空单元格的行号,要注意Range对象的End属性。不知读者是否已经掌握。

  2. 第6行到第10行代码从最大行数至最小行数循环判断A列单元格内容是否重复并删除重复单元格所在的整行。和上一讲一样,此处For...Next循环也要从最大行数至最小行数开始循环判断,否则可能会删除不净。

  3. 其中第7、8行代码使用工作表CountIf函数判断单元格内容是否重复,如果重复则删除该单元格所在的行。

  • A65536 适用于低版本Excel,如果是高版本,可以替换为A1048576,一般情况,即使是A65536也足矣,如有特殊情形,学员要注意更改,也可以用通用模式Rows.Count代替,学员要注意。

运行前mynz_24过程工作表区域下截图:

运行后的截图:

运行的结果后,可以看到和预想的一样。

今日内容回向:

1 删除工作表中重复数据的思路是什么?

2 COUNTIF 的意义是什么?

3 上面代码中.Columns(1)的意义是什么?

本讲内容参考程序文件:VBA代码解决方案(22-26).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

相关推荐
apcipot_rain3 小时前
C++转Java日记(04)
java·开发语言·c++
云和数据.ChenGuang4 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
蜗牛一步步往上爬8 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
张张123y10 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
冻柠檬飞冰走茶13 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
FRing0313 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
雪落漂泊13 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
波力海苔夹心脆67514 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
不会算法的笨小孩14 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
Hhy_110716 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio