MS Word 中的 VBA 影响整个文档,而不仅仅是选择

Posted

技术标签:

【中文标题】MS Word 中的 VBA 影响整个文档,而不仅仅是选择【英文标题】:VBA in MS Word affects whole document, not just selection 【发布时间】:2016-05-09 13:38:16 【问题描述】:

我想让 VBA 脚本在选择中执行查找/替换,然后将宏分配给快速访问工具栏上的按钮,以省去单击通常的查找/替换过程。

我在执行此操作时录制了一个宏,这就是我得到的:

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

但是,当我在选择上运行此宏以将段落标记更改为空格时,它会继续更改整个文档,而不仅仅是选择。

我对VBA没有陌生,但我看不到如何修复它,以便在选择完成时停止。

【问题讨论】:

【参考方案1】:

你将需要使用

     .Wrap = wdFindStop

代替

     .Wrap = wdFindAsk

【讨论】:

@Helen269 好东西,只要记得对您选择的答案进行适当的投票。

以上是关于MS Word 中的 VBA 影响整个文档,而不仅仅是选择的主要内容,如果未能解决你的问题,请参考以下文章

如何使用VBA循环访问MS Word中的每个字母?

通过 VBA excel 程序在 MS Word 标题中的边框线后添加页码和新行

选择非粗体文本并更改其颜色(选定段落的)- MS Word VBA 宏

[使用vba代码的ms Word文档文本翻译

VBA 导入 MS Access 到 MS Word

从VBA将制表符插入word文档