【发布时间】:2018-10-01 16:58:58
【问题描述】:
我在网上查看了许多不同的答案,但未能找到适合我的代码的解决方案。这是我第一次在 Word 中编写 VBA(对 Excel 有一定的经验)。
我认为this post 可能是我需要的,但它并没有为我停止文档末尾的循环。
我正在尝试在新部分的开始之前插入一个连续的分节符,我将其指定为格式为标题 1 的文本。我完全愿意以另一种方式这样做,并感谢您见解!
Sub InsertSectionBreak()
' Go to start of document
Selection.HomeKey Unit:=wdStory
' Find next section based on header formatting, insert continuous section break just before
'
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Heading 1")
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do While Selection.Find.Execute = True
Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.InsertBreak Type:=wdSectionBreakContinuous
Loop
End Sub
【问题讨论】:
-
你能和我们分享一下为什么你需要插入分节符吗?
-
当我阅读您的代码时,我希望它会在文档中的第一个标题 1 之前插入“无限”个分节符。这不是正在发生的事情吗?
-
感谢@FreeMan。那可能行得通!我也许可以添加一些预先确定的文本来说明文档的结尾。
-
@CindyMeister,最终我将需要选择文档的整个部分以复制并粘贴到另一个文档,具体取决于该部分中找到的特定关键字。我确信有一种更优雅的方式来选择该部分,但这是我在谷歌搜索中提出的想法。我当前的代码在文档的最后一部分(不是第一部分)之前添加了无限分节符。
-
我尝试使用 F8 单步执行宏,而不是运行宏,因为我不希望它永远运行。在我的测试文档中,我有 3 个部分,并且在第 2 部分之前添加了中断,然后是第 3 部分,然后是第 3 部分......