我有页脚,页码,当前文件名和页脚块图像的代码,但我希望能够插入一个字段来获取文件名和路径,并能够更新它。问题是它不包含路径文件,而且它不是自动的。 也许你可以帮忙......
'Page Number & Footer Algorithm
With wdapp.ActiveDocument.Sections(1).Footers(1).range.Paragraphs(1)
.Alignment = wdAlignParagraphLeft
'.Insert.quickparts.Field.Filename
.range.InsertBefore Text:=Left(ActiveDocument.Name, _
Len(ActiveDocument.name))
.Alignment = wdAlignParagraphRight
.range.InsertAfter vbCr & "Page "
Set r = .range
E = .range.End
r.Start = E
.range.Fields.Add r, wdFieldPage
.range.InsertAfter " of "
E = .range.End
r.Start = E
.range.Fields.Add r, wdFieldNumPages
.range.InsertAfter vbCr
.Alignment = wdAlignParagraphRight
.Alignment = wdAlignParagraphCenter
.range.InlineShapes.AddPicture ("X:\EQP\Residential Maintenance Agreement\Footer Template.PNG")
End With
答案 0 :(得分:1)
要使用路径获取文件名,请尝试以下操作:
TargetRange.Fields.Add Range:=TargetRange, Type:=wdFieldEmpty, Text:="FILENAME \p ", PreserveFormatting:=True
在您的情况下,TargetRange
可能类似于:
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Paragraphs(1).Range
您可能需要使用TargetRange
,包括使第一次和第二次出现的内容不同,以获取所需的文件名。
至于自动更新,这看起来比较棘手。根据{{3}},当您打印或打印预览时,页眉或页脚中的字段会更新,否则您必须手动强制更新。答案链接到另一个声称是VBA解决此问题的答案。
希望有所帮助。
答案 1 :(得分:0)
这似乎可以完成这项工作
.range.Fields.Add range:=.range, Type:=wdFieldEmpty, Text:="FILENAME \p ", PreserveFormatting:=True