遍历Word文档并用PageBreak替换字符串

时间:2019-06-18 09:17:33

标签: vba replace ms-word page-break

我正在尝试为Word创建一些宏,这将使我的生活比以前容易得多。

我的问题如下:我想创建一个Sub,用实际的"#PAGEBREAK#"替换字符串pagebreak的每次出现。这是我想出的:

Sub InsertPageBreak()

    Application.ScreenUpdating = False
    With ActiveDocument.Range
        With .Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Text = "#PAGEBREAK#"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .InsertBreak Type:=wdPageBreak
            .Execute
        End With
    End With
    Application.ScreenUpdating = True

End Sub

实际发生的情况:字符串“#PAGEBREAK#”被交换为空字符串。到目前为止,.Find炒锅已经达到预期的效果,但是我收到了错误消息:

Method or Object not found

.InsertBreak Type:= wdPageBreak

现在我的问题了(您可能已经猜到了),我从未在VBA上接受过任何教育,并且不知道该怎么办才能在这里工作。在这里可以采用哪种方法?因此,如果有任何人可以在这里为我提供帮助。

非常感谢!

预先感谢

严峻

1 个答案:

答案 0 :(得分:1)

这将为您服务:

getAllCellInfo()
listen()
getCellLocation()
getNeighboringCellInfo()

如果要替换所有的“#PAGEBREAK#”,请使用以下代码:

Sub InsertPageBreak()


    ActiveDocument.Range.Select

        With Selection.Find
                .Text = "#PAGEBREAK#"
                .Execute
        End With

        If Selection.Find.Found Then

            Selection.GoTo What:=wdGoToBookmark, Name:="\Page"
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveLeft Unit:=wdCharacter, Count:=1
            Selection.InsertBreak Type:=wdPageBreak

        End If
End Sub