0

这让我很头疼。我有一个非常大的 Word 宏。在某个时候,我必须更改页面的标题和格式。

因此我在这一点插入一个休息

Selection.InsertBreak Type:=wdSectionBreakContinuous

更改为横向/横向格式(因为图像也有这种格式)

    WordBasic.TogglePortrait Tab:=3, PaperSize:=0, TopMargin:="2.5", _
    BottomMargin:="2.5", LeftMargin:="2", RightMargin:="2.5", Gutter:="0", _
    PageWidth:="29.7", PageHeight:="21", Orientation:=1, FirstPage:=0, _
    OtherPages:=0, VertAlign:=0, ApplyPropsTo:=0, FacingPages:=0, _
    HeaderDistance:="1.25", FooterDistance:="1.25", SectionStart:=0, _
    OddAndEvenPages:=0, DifferentFirstPage:=0, Endnotes:=0, LineNum:=0, _
    StartingNum:=1, FromText:=wdAutoPosition, CountBy:=0, NumMode:=0, _
    TwoOnOne:=0, GutterPosition:=0, LayoutMode:=0, CharsLine:=41, LinesPage:= _
    39, CharPitch:=220, LinePitch:=360, DocFontName:="+Textkörper", _
    DocFontSize:=11, PageColumns:=1, TextFlow:=0, FirstPageOnLeft:=0, _
    SectionType:=1, FolioPrint:=0, ReverseFolio:=0, FolioPages:=1

输入标题

ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader

不应更改之前的页面,因此将标题格式与前一个页面取消链接

Selection.HeaderFooter.LinkToPrevious = False

跳出页眉到最后一页=新节的第一页这个需要做,否则由于上面的命令,我在上一节的页眉中。(不知道为什么会跳转到最后一个标题)并跳转到正确的标题

ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.EndKey unit:=wdStory
ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader

选择整个标题并将其删除

Selection.WholeStory
Selection.Delete

如果我在更改为水平格式后设置断点,则一切正常,这意味着我第一次跳转到标题或上面列出的较早点。但这是最后一种可能。

没有断点而不是只删除最后一页的标题,还会删除上一节的标题。

我不知道为什么会发生这种情况或如何防止它。

4

1 回答 1

0

好的,我想出了如何做到这一点。我已经认为它与运行时有关,并且某些事件无法及时执行。

所以我用doevents写了一个循环

For u = 1 To 1000000
DoEvents
Next u

我知道的太多了,但它有效;)

编辑:实际上2次就足够了,不需要1000000我只是想在一开始就确定:D

于 2012-08-30T10:35:18.087 回答