VBA插入字段,文件名和路径

时间:2017-07-27 18:42:50

标签: vba ms-word filepath

我有页脚,页码,当前文件名和页脚块图像的代码,但我希望能够插入一个字段来获取文件名和路径,并能够更新它。问题是它不包含路径文件,而且它不是自动的。 What I want to be able to do automatically也许你可以帮忙......

'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

2 个答案:

答案 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