|
发表于 2025-3-4 13:31
来自手机
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 lss001 于 2025-3-4 14:49 编辑
Sub Word正则搜索()
Dim i&, j&, p& '变量
Dim par As Paragraph, rng As Range
Dim prt As Object, pt As Object
Set rng = ActiveDocument.Range '当前
Selection.HomeKey 6: p = 0 '光标
With VBA.CreateObject("VbsCript.RegExp")
.Global = True '全局搜索
.MultiLine = True '多行搜索
.IgnoreCase = False '匹配大小写
.Pattern = "\d{1,2}" '正则表达式
For Each par In ActiveDocument.Paragraphs '段落
If .Test(par.Range.Text) Then '搜索
Set prt = .Execute(par.Range.Text) '执行
For Each pt In prt '结果
i = pt.FirstIndex + p '位置
j = pt.Length '长度
rng.SetRange i, i + j '设置
rng.Select '选择
Selection.Editors.Add -6 '添加
Next
End If
p = p + par.Range.End '结束
Next
rng.GoToEditableRange(-6) _
.Editors(1).SelectAll '选择全部编辑符
rng.GoToEditableRange(-6) _
.Editors(1).DeleteAll '删除全部编辑符
End With
MsgBox "搜索完成!"
Set rng = Nothing '释放
Set pt = Nothing
Set prt = Nothing
Set par = Nothing
End Sub |
|