2012-05-28 66 views
0

我們有第三方VBA模塊,我們正在調整以適應我們的需求。我們要做的是在Word文檔的頁腳中搜索文件路徑,並用(第三方生成的)文檔ID替換文件路徑。Word VBA - 替換頁腳文本

該代碼實際上目前非常簡單,幾乎可以工作。使用所需的文檔ID覆蓋文檔頁腳中的文件路徑是沒有問題的,但是目前我們的代碼覆蓋了Word文檔頁腳中的全部文本(頁碼,寫文檔的人的姓名首字母等)。我們只是希望替換文件路徑。

任何人都可以提出下面的代碼出錯的地方嗎?該代碼當前搜索現有的ID;如果它找不到,但找到它嘗試覆蓋的文件路徑;否則它將文檔ID從頭開始寫入文檔:

Set tSearch = doc.Sections(1).Footers(wdHeaderFooterPrimary).Range.Find 
tSearch.Text = idStr 
If Not tSearch.Execute() Then 
    'Current ID wasn't found; look for and replace an older one. 
    tSearch.MatchWildcards = True 
    tSearch.Text = "?:\*" 
    If Not tSearch.Execute(ReplaceWith:=idStr) Then 
     doc.Sections(1).PageSetup.DifferentFirstPageHeaderFooter = False 
     doc.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text = idStr 
     doc.Sections(1).Footers(wdHeaderFooterPrimary).Range.Font.Size = 8 
    End If 
End If 
+0

你還在尋找解決方案嗎? –

回答

0

對於初學者,搜索可能總是失敗。 Find文本需要更多這樣的:

tSearch.Text = "?:\\* " 

反斜線控制字符,需要打上一個文字字符,這偶然是反斜槓。此外,*不是真正的「找到所有」符號,而是將它看作「直到找到所有東西」。在這種情況下,一個空格字符,但它可能是一段時間,行尾等等。