Microsoft Office 2016 - 如何仅对选定的文本应用宏?

Microsoft Office 2016 - 如何仅对选定的文本应用宏?

我创建了宏来一次性替换多个字符。如果我将它应用于整个文档,然后将另一段文本粘贴到同一个文档中,那么应用相同的宏对新粘贴的文本来说没问题,但会弄乱已经应用宏的其余文本。

我在想,如果宏只能应用于选定的文本,而文档的其余部分不受影响,问题就会解决。

有人能帮忙吗?

问候,汤姆

答案1

更改 .Wrap =查找继续到 .Wrap =查找停止位在你的宏中:

' Macro1 Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "ä"
        .Replacement.Text = ChrW(257)
        .Forward = True
        .Wrap = wdFindContinue

答案2

仅适用于选择(用空格符号替换 Enters):

Sub RemoveEntersForSelectedText()
        
    With Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "^p"
    .Replacement.Text = " "
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    .Execute Replace:=wdReplaceAll
    End With
        
End Sub

相关内容