简体   繁体   English

Word宏插入页脚

[英]Word Macro to insert footer

I'm looking to run a Word macro which inserts a footer with filename and date and page number. 我想运行一个Word宏,该宏将插入一个带有文件名,日期和页码的页脚。

The following macro inserts file name, date and page number in the body of the document. 下面的宏在文件正文中插入文件名,日期和页码。 How to rewrite for it to insert this in the footer? 如何重写它以将其插入页脚? Greatly appreciate your help :) 非常感谢您的帮助:)

'AddFooter Macro 'AddFooter宏

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "FILENAME  \p ", PreserveFormatting:=True
Selection.HomeKey Unit:=wdLine
Selection.TypeParagraph
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.TypeText Text:=vbTab
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "PAGE  \* Arabic ", PreserveFormatting:=True
Selection.TypeText Text:=vbTab
Selection.InsertDateTime DateTimeFormat:="M/d/yyyy H:mm", InsertAsField:= _
    True, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _
    InsertAsFullWidth:=False
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Font.Size = 8
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
Selection.Font.Size = 8

End Sub` 结束Sub`

This is how I did it: 这是我的方法:

Sub AddFooter()

Dim Filename As String
Dim Sec As Section

Filename = ThisDocument.FullName

For Each Sec In ActiveDocument.Sections
    With Sec.Footers(wdHeaderFooterPrimary)
        .Range.InsertDateTime DateTimeFormat:="M/d/yyyy H:mm", InsertAsField:= _
            True, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern
        .Range.Text = .Range.Text & Filename
        .PageNumbers.Add
    End With
Next Sec

End Sub

I tried this: 我尝试了这个:

Sub AddFooterText()
Dim Filename As String

Filename = ThisDocument.FullName

ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Selection.TypeText Text:=Filename
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="M/d/yyyy H:mm"
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub

Try: 尝试:

Sub AddFooter()
With ActiveDocument.Sections.First.Footers(wdHeaderFooterPrimary).Range
  .Text = vbTab
  .Fields.Add Range:=.Characters.Last, Type:=wdFieldEmpty, Text:="PAGE", PreserveFormatting:=False
  .InsertAfter vbTab
  .Fields.Add Range:=.Characters.Last, Type:=wdFieldEmpty, Text:="DATE \@ ""M/D/YYYY H:mm""", PreserveFormatting:=False
  .InsertAfter vbCr
  .Fields.Add Range:=.Characters.Last, Type:=wdFieldEmpty, Text:="FILENAME  \p", PreserveFormatting:=False
End With
End Sub

Note1: To preserve any existing content, change '.Text = vbTab' to '.InsertAfter vbTab'. 注意1:要保留任何现有内容,请将“ .Text = vbTab”更改为“ .InsertAfter vbTab”。

Note2: To prevent the date changing later on, replace: 注意2:为防止以后更改日期,请更换:

.InsertAfter vbTab
.Fields.Add Range:=.Characters.Last, Type:=wdFieldEmpty, Text:="DATE \@ ""M/D/YYYY H:mm""", PreserveFormatting:=False
.InsertAfter vbCr

with: 与:

.InsertAfter vbTab & Format(Now,"M/D/YYYY H:mm") & vbCr

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM