自动化 Word 宏代码以将运算符字符串(如 "^=")替换为连字符?



我正在尝试查找字符串的所有实例"="或"=^"或"^+"并用"-"(空格连字符空格(。到目前为止,我已经尝试使用另一篇stackoverflow帖子中的Regex代码,但我真的很难匹配表达式。请找到我的尝试,并分享我如何编写VB宏代码来自动化这个过程。谢谢你的帮助!

With Selection.Find
.Text = "^+"
.Replacement.Text = " -- "
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

您可能不需要宏。尝试通配符查找/替换其中:

Find = [^94=][^94=+]
Replace = ^32-^32

要延长连字符,可以使用和of:

Replace = ^32--^32
Replace = ^32^=^32; or
Replace = ^32^+^32,

后两者分别将连字符改为短划线或短划线。

如果要将连字符与前面的字符保持在一起,请将第一个^32更改为^s。

或者,作为一个宏:

Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "[^94=][^94=+]"
.Replacement.Text = " - "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
End With
Application.ScreenUpdating = True
End Sub

与手动通配符查找/替换一样,您可以使用以下任意字符延长连字符:

.Replacement.Text = " -- "
.Replacement.Text = " ^= "
.Replacement.Text = " ^+ "

同样,如果要将连字符与前面的字符保持在一起,请将代码中的第一个替换空格更改为^s。

最新更新