在没有标题的单词中插入新页面

时间:2016-03-02 08:17:48

标签: vba pdf ms-word word-vba

我试图在单词中插入一个新页面,即插入分节符。问题是,我想将此页面更改为A3格局并删除我的代码当前不执行的所有标题。如何修改我的代码以实现此目的?

下面是我当前插入新页面的代码,但保留了标题和a4肖像:

If wordDrawingExist Then
    Selection.EndKey Unit:=wdStory
    Selection.InsertFile FileName:=wFile, link:=False

    Set wb = Documents.Open(wFile)
    Selection.WholeStory
    Selection.Copy
    Documents(docLogSkjema).Activate
    Selection.EndKey Unit:=wdLine
    Selection.InsertBreak Type:=wdPageBreak
    Selection.Paste

    wb.Close False
End If

wFile是一个wordfile的完整路径,它基本上是来自freepdfsolutions.com的pdf to word(尝试直接插入pdf但是pdf的质量非常差,数字难以阅读)和{如果wordfile存在或不存在,则{1}}是布尔说法

2 个答案:

答案 0 :(得分:1)

好的,首先,你需要一个分节符,而不是一个简单的分页符:

Selection.InsertBreak Type:=wdSectionBreakNextPage

要更改为横向方向:

Selection.PageSetup.Orientation = wdOrientLandscape

确保您在要更改的部分中。请注意,插入分节符后,光标将位于新节中。

要将尺寸更改为A3,您需要手动设置尺寸:

With Selection.PageSetup
 .PageWidth = CentimetersToPoints(42)
 .PageHeight = CentimetersToPoints(29.7)
End With

删除标题:

selection.Sections(1).Headers(wdHeaderFooterPrimary).Range.Delete

您的选择不包含多个部分,因此从它接触的一个部分开始,您需要第一部分(duh),因此需要部分(1)。

把它们放在一起:

Selection.InsertBreak Type:=wdSectionBreakNextPage
With Selection.PageSetup
 .Orientation = wdOrientLandscape
 .PageWidth = CentimetersToPoints(42)
 .PageHeight = CentimetersToPoints(29.7)
End With
Selection.Sections(1).Headers(wdHeaderFooterPrimary).Range.Delete

此代码将插入新的部分+分页符,将此新部分设置为横向A3,并从中删除标题。

注意:您可能需要在删除之前取消链接标题

selection.Sections(1).Headers(wdHeaderFooterPrimary).LinkToPrevious=False

希望这会有所帮助。

答案 1 :(得分:0)

以下是其他人也觉得有用的工作代码:

    'Add drawing
    If wordDrawingExist Then
        Set wb = Documents.Open(wFile)
        Selection.WholeStory
        Selection.Copy
        Documents(docLogSkjema).Activate
        Selection.EndKey Unit:=wdStory
        Selection.InsertBreak Type:=wdSectionBreakNextPage
        With Selection.PageSetup
         .Orientation = wdOrientLandscape
         .PageWidth = CentimetersToPoints(42)
         .PageHeight = CentimetersToPoints(29.7)
        End With
        Selection.Sections(1).Headers(wdHeaderFooterPrimary).LinkToPrevious = False
        Selection.Sections(1).Headers(wdHeaderFooterPrimary).Range.Delete
        Selection.Sections(1).Footers(wdHeaderFooterPrimary).LinkToPrevious = False
        Selection.Sections(1).Footers(wdHeaderFooterPrimary).Range.Delete
        Selection.Paste
        wb.Close False
    End If