Workbuddy+Excel 杂乱数据 VBA 正则清洗
- 2026-11-06 18:38:36
Workbuddy+Excel 杂乱数据 VBA 正则清洗Excel 原始数据杂乱、混杂多余符号、换行、空格、特殊字符、乱码、冗余文本;用 VBA 正则做清洗,WorkBuddy 负责批量生成、调试、迭代 VBA 代码,不用手写复杂正则。 一、整体流程思路 WorkBuddy 输入原始样例数据 + 清洗需求 1、 自动输出 VBA 正则完整模块 2、Excel 启用宏,粘贴代码,选中待清洗区域运行 3、清洗效果不满意,把错误样例丢回 WorkBuddy,迭代正则规则 4、支持:去除特殊符号、清理多余空格换行、提取手机号 / 数字、剔除乱码、清理混杂备注文本 核心依赖 VBA 的 三、WorkBuddy 使用提示词(直接复制给 WorkBuddy) 这是核心,把你的真实脏数据粘贴进去,自动生成适配 VBA 正则代码
Microsoft VBScript Regular Expressions 5.5 正则库二、Excel VBA 正则通用清洗模板
步骤 1:开启正则引用
VBA 编辑器 → 工具 → 引用 → 勾选 Microsoft VBScript Regular Expressions 5.5
完整 VBA 代码(通用杂乱数据清洗)
Option Explicit' 批量清洗选中单元格杂乱数据,正则实现Sub RegexCleanDirtyData()Dim rng As Range, cell As RangeDim reg As ObjectSet reg = CreateObject("VBScript.RegExp") ' 后期绑定,不用手动勾选引用,兼容性更好reg.Global = True ' 全局全部替换reg.IgnoreCase = TrueIf Selection Is Nothing ThenMsgBox "请先选中需要清洗的数据区域!", vbExclamationExit SubEnd IfFor Each cell In SelectionIf Not cell.HasFormula And Not IsEmpty(cell.Value) ThenDim txt As Stringtxt = CStr(cell.Value)'===== 正则清洗规则组,WorkBuddy可按需增删修改 ====='1.去除全角/半角多余空格、制表符reg.Pattern = "[ \t]+"txt = reg.Replace(txt, " ")'2.清除换行、回车reg.Pattern = "[\r\n]"txt = reg.Replace(txt, "")'3.清除大部分不可见特殊乱码字符reg.Pattern = "[^\u4e00-\u9fa5a-zA-Z0-9,。、;:,.!?!?()()\-_ ]"txt = reg.Replace(txt, "")'4.首尾去空格txt = Trim(txt)'================================================cell.Value = txtEnd IfNext cellMsgBox "数据清洗完成!", vbInformationEnd Sub'【扩展】正则提取数字,例如提取混杂文本里手机号/编号Sub RegexExtractNumber()Dim reg As Object, cell As RangeSet reg = CreateObject("VBScript.RegExp")reg.Global = TrueFor Each cell In SelectionIf Not IsEmpty(cell.Value) Thenreg.Pattern = "\d+" '提取连续数字Dim matches As ObjectSet matches = reg.Execute(cell.Value)If matches.Count > 0 Thencell.Offset(0, 1).Value = matches(0).Value '结果输出到右侧单元格End IfEnd IfNext cellEnd Sub
你现在是VBA正则数据清洗专家。输入样例脏数据:【粘贴你的Excel杂乱样例】清洗需求:1.描述需要保留什么(中文/数字/英文/标点)2.描述需要删掉什么(乱码、特殊符号、多余换行、备注、无效字符)3.输出完整可直接运行Excel‑VBA代码,使用后期绑定CreateObject("VBScript.RegExp"),不要要求手动勾选库;4.增加注释;选中单元格直接运行;不改动公式单元格。5.额外给出2‑3条备选正则pattern,方便我切换。
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。