Word VBA:查找文本字符串并将其所有实例更改为标题大小写
我试图编写一个宏,将“section 1”、“section 2”等的大小写改为标题大小写,因此它们都是“section 1”等。我在这里进行了改编: 我遇到的问题是,它一次只更改一个实例。理想情况下,它可以通过一次按键改变所有实例的情况 作为奖励,我还希望将案例变更登记为跟踪变更。由于我正在使用跟踪的更改,我无法用Word VBA:查找文本字符串并将其所有实例更改为标题大小写,vba,ms-word,Vba,Ms Word,我试图编写一个宏,将“section 1”、“section 2”等的大小写改为标题大小写,因此它们都是“section 1”等。我在这里进行了改编: 我遇到的问题是,它一次只更改一个实例。理想情况下,它可以通过一次按键改变所有实例的情况 作为奖励,我还希望将案例变更登记为跟踪变更。由于我正在使用跟踪的更改,我无法用节([0-9])替换节\1的简单文本宏,因为跟踪的错误使其成为“1节”、“2节”等。这不是必要的,但会是一个非常好的奖励。.Case函数不会被跟踪,并且.Font只有.AllCaps
节([0-9])
替换节\1
的简单文本宏,因为跟踪的错误使其成为“1节”、“2节”等。这不是必要的,但会是一个非常好的奖励。.Case
函数不会被跟踪,并且.Font
只有.AllCaps
的一个选项
也许有一种方法可以找到部分[0-9]
,将光标移动到单词的开头并选择第一个字母,设置.Font.AllCaps=True
,然后循环,直到不再有部分[0-9]
的实例?这只是一个想法,但这远远超出了我目前的宏观能力。目前的主要工作是将上述代码应用于部分[0-9]
的所有实例
干杯 试试看:
Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "section [0-9]"
.Replacement.Text = ""
.Format = False
.Forward = True
.Wrap = wdFindStop
.MatchWildcards = True
End With
Do While .Find.Execute
.Characters.First.Text = "S"
.Collapse wdCollapseEnd
Loop
End With
Application.ScreenUpdating = True
End Sub
尝试:
Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "section [0-9]"
.Replacement.Text = ""
.Format = False
.Forward = True
.Wrap = wdFindStop
.MatchWildcards = True
End With
Do While .Find.Execute
.Characters.First.Text = "S"
.Collapse wdCollapseEnd
Loop
End With
Application.ScreenUpdating = True
End Sub