具有断点的宏表现不同

时间:2012-08-30 10:11:30

标签: vba word-vba

这让我很头疼。 我有一个非常庞大的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

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

如果没有断点而不是仅删除最后一页的标题,也会删除上一节的标题。

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

1 个答案:

答案 0 :(得分:0)

好的,我想出了怎么做。 我已经认为它与运行时有关,并且某些事件无法及时执行。

所以我用doevents写了一个循环

For u = 1 To 1000000
DoEvents
Next u

我知道这太多了,但确实有效;)

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