一、代码
' 将当前工作表中的英文双引号替换为中文双引号 Sub ReplaceQuote() Dim regex As Object Set regex = CreateObject("VBScript.RegExp") ' 正则表达式模式,匹配被英文双引号包围的任何文本 regex.Pattern = """(.*?)""" regex.Global = True ' 用于全局匹配 regex.MultiLine = True ' 用于跨行匹配 ' 遍历工作表中的每个单元格 Dim ws As Worksheet Set ws = ActiveSheet Dim cell As Range For Each cell In ws.UsedRange ' 使用正则表达式进行替换 cell.Value = regex.Replace(cell.Value, "“$1”") Next cell ' 清理 Set regex = Nothing End Sub
二、待优化点
- EXCEL不支持富文本(即一个单元格中存在多种格式),因此当单元格中存在富文本时,运行上述程序后,产生替换的单元格的格式将发生变化。举个例子:某一单元格中存在英文双引号、且部分文本被加粗,则运行上述程序后,该单元格中的英文双引号将被替换成中文双引号、同时所有文本不再加粗。
三、VBA操作过程


