Sub ReplaceStartingWith1UntilFirstSpaceInHeading2()
Dim oPara As Paragraph
Dim oRange As Range
Dim regex As Object
Dim matches As Object
Dim match As Object
' 创建正则表达式对象
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True ' 替换所有匹配项
.IgnoreCase = False ' 区分大小写
.Pattern = "1[^ ]* " ' 匹配以1开头,直到第一个空格的部分
.MultiLine = True ' 多行匹配
End With
' 遍历文档中的所有段落
For Each oPara In ActiveDocument.Paragraphs
' 检查是否为第二级标题样式
If oPara.Style = "标题 2" Then
Set oRange = oPara.Range
' 使用正则表达式在标题中查找匹配的字符串
Set matches = regex.Execute(oRange.Text)
If matches.Count > 0 Then
For Each match In matches
' 替换第一个匹配的字符串
oRange.Start = oRange.Start + match.FirstIndex
oRange.End = oRange.Start + Len(match.Value)
oRange.Text = " " ' 替换为空格
oRange.Collapse Direction:=wdCollapseStart ' 折叠范围到开始
Next match
End If
End If
Next oPara
MsgBox "完成替换以1开头直到第一个空格的字符串,同时保留格式。"
End Sub
word小工具,替换标题数字开头空格结尾部分为空
于 2024-12-19 10:59:01 首次发布