Low*_*par 1 ms-access vba ms-word
我对 Word vba 还很陌生,这周我得到了这段代码的帮助。代码将图像插入标题中,现在我唯一的挑战是我只想在第一页上显示该图像,但是当我运行应该执行此操作的子活动时,原始页面上什么也没有出现。我正在通过访问数据库运行代码,一切正常,除了这个。
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
Run Code Online (Sandbox Code Playgroud)
有关 Word 中标题的一些详细信息。
如果您想在第一页中使用与文档其余部分不同的标题,您可以这样设置。
With oDoc.PageSetup
.DifferentFirstPageHeaderFooter = True
.OddAndEvenPagesHeaderFooter = False
End With
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过获取范围添加到第一页wdHeaderFooterFirstPage,或wdHeaderFooterPrimary添加到所有其他页面。
最后,如果您需要清除任何现有标头并重新开始,您可以执行以下操作:
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
Run Code Online (Sandbox Code Playgroud)