2017-07-27 61 views
1

我有我的頁腳,頁碼,當前文件名和頁腳塊圖像的代碼,但我希望能夠插入一個字段以獲取文件名和路徑,並且能夠更新。問題是它不包含路徑文件,而且它不是自動的。 What I want to be able to do automatically也許你可以幫助...VBA插入字段,文件名和路徑

'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 

回答

1

要獲取的文件名與路徑嘗試是這樣的:

TargetRange.Fields.Add Range:=TargetRange, Type:=wdFieldEmpty, Text:="FILENAME \p ", PreserveFormatting:=True 

你的情況可能TargetRange是這樣的:

ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Paragraphs(1).Range 

你可能需要使用TargetRange,包括使第一個和第二個事件不同,以獲取您想要的文件名。

至於自動更新,看起來更棘手。根據this answer,當您打印或打印預覽時,放置在頁眉或頁腳中的字段會更新,否則您必須手動強制更新。答案鏈接到另一個聲稱是這個問題的VBA解決方案的答案。

希望有所幫助。

0

這似乎做的工作

.range.Fields.Add range:=.range, Type:=wdFieldEmpty, Text:="FILENAME \p ", PreserveFormatting:=True