Vba 仅第一页页眉上的图像

Vba 仅第一页页眉上的图像,vba,ms-access,ms-word,Vba,Ms Access,Ms Word,我对vba这个词很陌生,在这周我得到了这段代码的帮助。代码在标题中插入了一个图像,我现在唯一的挑战是,我只希望在第一页上显示这个图像,但是当我运行sub-active时,原始页面上不会显示任何图像。我正在access数据库中运行代码,除了这个,其他一切都正常工作 Public Sub UpdateHeader(oDoc As Word.Document) Dim oSec As Word.Section, rng As Range active oDoc

我对vba这个词很陌生,在这周我得到了这段代码的帮助。代码在标题中插入了一个图像,我现在唯一的挑战是,我只希望在第一页上显示这个图像,但是当我运行sub-active时,原始页面上不会显示任何图像。我正在access数据库中运行代码,除了这个,其他一切都正常工作

Public Sub UpdateHeader(oDoc As Word.Document)
        Dim oSec As Word.Section, rng As Range
        active oDoc
        For Each oSec In oDoc.Sections
            Set rng = oSec.Headers(Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range
                With rng
                    .Tables.Add Range:=rng, NumRows:=1, NumColumns:=1, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitWindow
                    With .Tables(1)
                        .Borders.InsideLineStyle = wdLineStyleNone
                        .Borders.OutsideLineStyle = wdLineStyleNone
                        .Rows.SetLeftIndent LeftIndent:=15, RulerStyle:=wdAdjustNone
                        .Cell(1, 1).Range.InlineShapes.AddPicture FileName:="C:\Images\Logo.jpg", LinkToFile:=False, SaveWithDocument:=True
                    End With
                End With
        Next oSec

    End Sub

    Sub active(oDoc As Word.Document)

    oDoc.Sections.PageSetup.DifferentFirstPageHeaderFooter = True

    End Sub

有关Word中标题的一些详细信息

如果希望第一页的标题与文档的其余部分不同,可以这样设置

With oDoc.PageSetup
    .DifferentFirstPageHeaderFooter = True
    .OddAndEvenPagesHeaderFooter = False
End With
然后,您可以通过获取所有其他页面的
wdheaderfooterfirfirstpage
范围或
wdheaderfooterprisary
来添加到第一页

最后,如果需要清除任何现有标题并重新开始,可以执行以下操作:

Private Sub ClearExistingHeaders(oDoc As Word.Document)
    Dim oSec As Word.Section, oHeader As HeaderFooter
    For Each oSec In oDoc.Sections
        For Each oHeader In oSec.Headers
            oHeader.Range.Delete
        Next
    Next
End Sub

有关Word中标题的一些详细信息

如果希望第一页的标题与文档的其余部分不同,可以这样设置

With oDoc.PageSetup
    .DifferentFirstPageHeaderFooter = True
    .OddAndEvenPagesHeaderFooter = False
End With
然后,您可以通过获取所有其他页面的
wdheaderfooterfirfirstpage
范围或
wdheaderfooterprisary
来添加到第一页

最后,如果需要清除任何现有标题并重新开始,可以执行以下操作:

Private Sub ClearExistingHeaders(oDoc As Word.Document)
    Dim oSec As Word.Section, oHeader As HeaderFooter
    For Each oSec In oDoc.Sections
        For Each oHeader In oSec.Headers
            oHeader.Range.Delete
        Next
    Next
End Sub

wdheaderfooterprisary
更改为
wdheaderfootterfirstpage
。非常感谢Kostas,它工作得非常好!将
wdheaderfooterprisary
更改为
wdheaderfootterfirstpage
。非常感谢Kostas,它工作得非常好!如果这个答案对你有帮助;请考虑一下。接受答案会奖励贡献者并帮助他人找到有效的解决方案;请考虑一下。接受答案会奖励贡献者,并帮助其他人找到有效的解决方案。