2014-07-25 119 views
0

我想根據同一文檔中的某些內容來查找並替換MS Word文檔中的內容。我有系統生成的Word文檔,每個頁面的長度各不相同,但頁數可以從1到100(或更多)不等。每個文檔的格式完全一樣。文檔每一頁的一個短語(例如「收費類型」)可能會也可能不會因頁面而異,我需要能夠根據收費類型在每個頁面中插入實際的收費金額反映在給定的頁面上根據文檔中的其他字段的內容更新MS Word字段

我一直在嘗試使用書籤方法,而且我在MS Word中使用VBA的方法相當新,我正在採用設置書籤範圍的方法來搜索短語, 。然後設置書籤會顯示在何處插入值以下是我迄今爲止:

子bmAmtDue() 「 」 bmAmtDue 「 」 昏暗RNG爲靶場 昏暗iBookmarkSuffix作爲整數 昏暗strBookMarkPrefix

strBookMarkPrefix = "BM" 

Set rng = ActiveDocument.Range 
With rng.Find 
    .Text = "Please see fee chart, with additional requirements, on reverse side" 
    Do While .Execute 
     rng.Text = "" 'clear the "XXX" (optional) 
     iBookmarkSuffix = iBookmarkSuffix + 1 
     ActiveDocument.Bookmarks.Add strBookMarkPrefix & iBookmarkSuffix, rng 
    Loop 
End With 

結束子

子bmStartPermitType() ' ' bmStartPermitType ' ' 昏暗RNG2作爲範圍 昏暗iBookmarkSuffix作爲整數 昏暗strBookMarkPrefix

strBookMarkPrefix = "BMStartPermitType" 

Set rng = ActiveDocument.Range 
With rng.Find 
    .Text = "Type:" 
    Do While .Execute 
     iBookmarkSuffix = iBookmarkSuffix + 1 
     ActiveDocument.Bookmarks.Add strBookMarkPrefix & iBookmarkSuffix, rng 
    Loop 
End With 

結束子

子bmEndPermitType() ' ' bmEndPermitType ' ' 昏暗RNG2作爲範圍 昏暗iBookmarkSuffix作爲整數 昏暗strBookMarkPrefix

strBookMarkPrefix = "BMEndPermitType" 

Set rng = ActiveDocument.Range 
With rng.Find 
    .Text = "Amount due:" 
    Do While .Execute 
     iBookmarkSuffix = iBookmarkSuffix + 1 
     ActiveDocument.Bookmarks.Add strBookMarkPrefix & iBookmarkSuffix, rng 
    Loop 
End With 

結束子

我將不勝感激任何幫助,我不介意如果有一個簡單的方法採取不同的方法。我很喜歡使用MS Word文檔。我們每個月都會手動執行此操作,有時候會有100個文檔。

謝謝

回答

0

書籤是美好的,但可能是「太靈活」 - 他們甚至可以在另一個段落的中間的表格單元格和最終的中間開始。我建議您嘗試使用內容控制功能 - 它們的外觀也可能更適合您的場景。檢查這個link

如果你可以編寫一個簡單的.NET應用程序,有mail merge toolkit這將使你的任務更容易。它將允許您創建充當模板的Word文檔(它也使用Content Control進行標記),您可以使用.NET應用程序中的數據填充該文檔。它只需要幾行代碼來編寫。

+0

感謝您的意見。我對編寫.NET真的一無所知。我認爲我會放棄書籤方式。我將嘗試使用VBA來搜索關鍵字,將與關鍵字相鄰的內容作爲變量存儲,並使用vlookup函數從Excel中檢索值並將其寫入Word文檔。如果我得到它的工作,我會發布我的代碼給任何人使用誰可能需要它。 –

相關問題