发布时间:2026/8/24 23:04:07
VBA 数据清洗:从 ERP、CRM、网页后台导出的 Excel,一招删除空行、去重、格式统一 VBA 数据清洗删除空行、去重、格式统一适用Excel 2016 / 2019 / 2021 / Microsoft 365 / WPSVBA 通用核心删空行 去重 去空格/文本转数值 一键把从系统导出的脏表整理成干净表痛点从系统导出的数据真的是惨不忍睹做报表的都懂从 ERP、CRM、网页后台导出的 Excel永远带着一堆惊喜——中间夹杂几十行完全空白的行同一笔数据因为反复导出了重复行数字前面有看不见的空格导致 VLOOKUP 对不上明明是数字存成了文本求和全是 0日期格式五花八门2026.8.12026/8/108-01混在一起。手动一条条删、一个个改5000 行能改到眼瞎。其实用 VBA 写一个小清洗宏点一下10 秒把脏表变干净。这一步也是前面几篇发邮件、生成合同的前置——数据源不干净后面全白搭。效果预览清洗前节选清洗后空行没了、重复行第 2 个张三删了、工资列的空格和文本格式都统一成纯数字。可以直接拿去做 VLOOKUP 和求和。核心思路删空行从下往上遍历整行CountA0就删除必须倒着删否则会漏。去重用RemoveDuplicates以指定列为依据保留首次出现的行。格式统一逐格Trim去首尾空格如果是文本型数字用Val转成真数值。完整代码放进一个.xlsm模块的普通过程即可Alt F11→ 插入 → 模块。运行前先点中你要清洗的工作表。Option Explicit 一键清洗当前工作表删空行 去重 格式统一 Sub CleanSheet() Dim ws As Worksheet Dim lastRow As Long, lastCol As Long Set ws ActiveSheet lastRow ws.Cells(ws.Rows.Count, 1).End(xlUp).Row If lastRow 2 Then MsgBox 没有数据可清洗。, vbExclamation Exit Sub End If lastCol ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column Application.ScreenUpdating False ① 删除完全为空的行从下往上删避免漏删 Dim i As Long For i lastRow To 1 Step -1 If Application.WorksheetFunction.CountA(ws.Rows(i)) 0 Then ws.Rows(i).Delete End If Next i 重新计算行数删除后变了 lastRow ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ② 去重以第 1 列为依据有表头 ws.Range(A1).Resize(lastRow, lastCol).RemoveDuplicates _ Columns:1, Header:xlYes ③ 格式统一去首尾空格 文本数字转数值 Dim r As Long, c As Range For r 2 To lastRow For Each c In ws.Range(A r).Resize(1, lastCol) If Len(Trim(c.Value)) 0 Then c.Value Trim(c.Value) 去掉首尾空格 If IsNumeric(c.Value) Then 文本型数字 → 真数值 c.Value Val(c.Value) c.NumberFormat General End If End If Next c Next r Application.ScreenUpdating True MsgBox 清洗完成空行已删、重复已去、格式已统一。, vbInformation End Sub逐段看懂代码段作用Set ws ActiveSheet对当前选中的工作表操作灵活不写死表名。For i lastRow To 1 Step -1倒序遍历正序删行会跳过下一行倒序才稳妥。CountA(ws.Rows(i)) 0整行一个非空单元格都没有才算空行。RemoveDuplicates Columns:1以第 1 列值为准去重多列判重用Array(1,2)。Trim(c.Value)去掉单元格首尾空格中间空格不去。Val(c.Value)把文本型数字转成可计算的真数值。Application.ScreenUpdating关掉屏幕刷新几千行清洗不卡顿结束再打开。进阶多列去重、批量处理、日期统一多列同时判重只有当第 1 列和第 2 列都相同才算重复传数组即可ws.Range(A1).Resize(lastRow, lastCol).RemoveDuplicates _ Columns:Array(1, 2), Header:xlYes批量清洗工作簿里所有表把清洗逻辑包进一个循环Dim sh As Worksheet For Each sh In ThisWorkbook.Worksheets 把上面的清洗代码对 sh 执行一遍 注意把代码里的 ws 改成 sh Next sh日期文本统一如果日期被存成 “2026.8.1” 这种文本先替换点号为斜杠再转日期If InStr(c.Value, .) 0 Then c.Value Replace(c.Value, ., /) c.Value CDate(c.Value) c.NumberFormat yyyy-mm-dd End If常见坑表坑现象解决用 SpecialCells 删空行SpecialCells(xlCellTypeBlanks).EntireRow.Delete会误删只有部分空格的行改用CountA0判整行空从下往上删。正序删行删完一行后面的行上移下一行被跳过漏删务必For i lastRow To 1 Step -1。去重只判一列两行第1列不同但其他列全同没被去重多列判重用Array(1, 2, ...)。前导零丢失工号00123被 Val 成 123工号/编码类列别转数值保留文本可加判断跳过。中间双空格Trim只去首尾中间多个空格还在用Application.WorksheetFunction.Clean或替换处理。忘了恢复刷新屏幕卡住不动确保结尾ScreenUpdating True。小结数据清洗是 Excel 自动化的地基删空行、去重、格式统一这三板斧几乎出现在每一个真实项目里。把它做成一键宏之后前面第 7 篇生成合同、第 8 篇发邮件的数据源就能稳稳接上。下一篇预告《VBA 自动合并多个工作簿把散落各处的文件一键汇成总表》。

相关新闻

2026/8/24 22:59:07

Java开发中的数据合规实践与面试策略

1. 行业背景与问题现状今年315晚会曝光了AI训练数据乱象后,整个科技行业都在重新审视数据伦理问题。作为从业十年的Java技术面试官,我发现这场风波正在深刻影响着开发者的求职环境。特别在金融、医疗等强监管领域,企业对候选人技术伦理意识的…

2026/8/24 22:59:07

Chat0:免费极速的开源AI聊天应用完整指南

Chat0:免费极速的开源AI聊天应用完整指南 【免费下载链接】chat0 Blazingly-fast, free, open source AI chat app. Discord - https://discord.gg/mQSPrxVryy 项目地址: https://gitcode.com/gh_mirrors/ch/chat0 Chat0 是一款开源、免费的 AI 聊天应用&…

2026/8/25 1:34:18

AI Agent记忆系统Mem0:从架构到实战的完整指南

在AI Agent的开发浪潮中,我们常常惊叹于其强大的推理与执行能力,但一个真正智能、能持续学习的Agent,其核心往往不在于一次性的任务完成,而在于它能否“记住”过去。无论是与用户的多轮对话、长期的项目协作,还是从历史…

2026/8/25 1:34:18

AI智能体记忆系统Mem0:从向量检索到工程落地的完整指南

1. 先搞清楚 Mem0 到底解决了什么核心问题 如果你在尝试构建一个能持续对话的 AI 智能体,最头疼的往往不是单轮对话的质量,而是它“记不住事儿”。你告诉它你的名字、偏好、项目背景,但下一次对话时,它又回到了“出厂设置”&#…

2026/8/25 1:34:18

AI智能体记忆系统Mem0实战:从零部署长期记忆助手

如果你正在开发AI智能体,可能会遇到一个看似简单却影响体验的核心问题: 为什么我的Agent每次对话都像“金鱼”一样,只有7秒记忆? 用户昨天告诉你他喜欢用Python,今天再问,它却推荐了Java。你精心设计的客…

2026/8/25 1:34:18

舞蹈动作姿势序列数据集:来自RGB舞蹈视频的带注释骨骼关节序列

摘要:舞蹈动作姿势序列数据集是一个面向人体运动理解、姿态估计和动作分析研究的多模态运动数据集。数据集概述舞蹈动作姿势序列数据集是一个面向人体运动理解、姿态估计和动作分析研究的多模态运动数据集。该数据集从室内环境下采集的RGB舞蹈视频中提取结构化骨骼关…

2026/8/25 1:29:18

系统设计进阶:从功能实现到架构思维,全面掌握非功能性需求

1. 这篇文章真正要解决的问题如果你是一名开发者,是否曾有过这样的经历:你精心设计的系统,功能逻辑完美无缺,代码优雅健壮,但在上线后却频频遭遇性能瓶颈、频繁宕机、用户抱怨加载慢如蜗牛,甚至因为一次小小…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 1:12:32

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…