Excel 中使用正则表达式进行查找与替换

在 Excel 中,使用 Alt+F11 快捷键打开 VBA 项目窗口,在左侧的工作表名称上点右键,选择查看代码,即可出出现右侧的代码编辑窗口

Excel 中使用正则表达式进行查找与替换

在代码窗口中输入以下代码:


Private Sub RegExp_Replace()

    Dim RegExp As Object
    Dim SearchRange As Range, Cell As Range
    
    '此处定义正则表达式
    Set RegExp = CreateObject("vbscript.regexp")
    RegExp.Pattern = "[0-9]{5}"
     
    '此处指定查找范围
    Set SearchRange = ActiveSheet.Range("A1:A99")
    
    '遍历查找范围内的单元格
    For Each Cell In SearchRange
        Set Matches = RegExp.Execute(Cell.Value)
        If Matches.Count >= 1 Then
            Set Match = Matches(0)
            Cell.Value = RegExp.Replace(Cell.Value, "")
        End If
    Next

End Sub

根据实际需要替换相应参数,点击 Excel 中使用正则表达式进行查找与替换 运行即可得到效果。


如果 excel 提示该工程中的宏被禁止在 -》工具-》宏-》安全性-》中,关闭重新打开,会提示是否启用宏。选启用宏:

Excel 中使用正则表达式进行查找与替换

如果您的EXECL2003宏被禁用,有以下几种解决办法

  • 利用EXCEL的宏安全性问题

在菜单中选择:工具--选项--宏--安全性,设置成“低”或“中”,再打开文件,宏会提示使用“宏”,按“启动宏”打开文件。

如果安全性调成中,打开EXCEL文档时就会提示是否加载宏。 
如果安全性调成低,那么打开EXCEL文档时就直接加载宏。

  • 删除EXCEL模板(当第一个方法无法实现时使用)

C:\Documents and Settings\你的用户名\Application Data\Microsoft\Excel\Excel11-模板删除.

  • 修改注册表实现(当第一个方法无法实现时使用)

打开注册表编辑工具(regedit.exe),找到HKEY_LOCAL_MACHINE打开,找SOFTWARE打开,找Microsoft打开,找office打开,找11.0打开,找EXCEL打开,找security打开后看到它旁边的窗口有一项名称为LEVEL的,双击它,在跳出的编辑DWORD值里面看到数值数据(V):下面的空格啦,你就可以在里面修改数值啦。注意:填写1为低,填写2为中,填写3为高。

 

office系统其他应用软件的宏禁用解决方法与此类似。