2015-10-08 41 views
1

我需要根據已讀入某些文本文件的信息自動修改模板文檔(docx),並且我正在爲此使用VBA。模板文檔有一個預定義的記錄,這看起來是這樣的:使用vba編寫docx文檔的特定點

description: first description which can take more rows 
      ... 
author: the author 
date: the date 
... 

我需要的是複製下列第一個前行,因爲很多倍的文本文件我也有,並且完成每一個絲毫信息,我複製到字符串。因此,舉例來說,如果我有3個文本文件,我必須前行三次,就像這樣:

description: first description 
      ... 
author: the first author 
date: the date in the first file 

description: second description 
      ... 
author: the second author 
date: the date in the second file 

description: third description 
      ... 
author: the third author 
date: the date in the third file 

,其中第一個是現成的,我需要重複兩次。 如何告訴Word複製並寫入文檔的特定點? 我想過類似如下:(代碼可能是不正確的,我會把它放在那裏explaying我的想法)

For i = 1 To n(number of text file) 
    ActiveDocument.Range(Start:=ActiveDocument.Paragraphs(Index).Range.Start         
        End:=ActiveDocument.Paragraphs(Index+3).Range.End).Select 
    Selection.Copy 
    ActiveDocument.Paragraphs(Index+4).Select 
    Selection.Paste 
Next i 

以前是用於複製記錄。 現在我必須填寫的記錄寫入標題:,筆者後信息:和日期:每個人的,所以像:

For i=1 To n 
    ActiveDocument.Paragraphs(Index(i)+1).Words(2) = description(i) 
    ActiveDocument.Paragraphs(Index(i)+2).Words(2) = author(i) 
    ActiveDocument.Paragraphs(Index(i)+3).Words(2) = date(i) 
Next i 

內容描述,作者和日期的文本字符串我已經有了。 這是否有任何意義,或者我採取了錯誤的方式?有沒有更聰明的VBA對象可以使用?

+1

使用書籤。對於Word我不太瞭解vba,但我認爲這是要走的路。 http://word.mvps.org/faqs/macrosvba/WorkWithBookmarks.htm –

回答

0

不幸的是,我沒有足夠的積分還沒有添加爲一個評論,它實際上屬於...

哪個版本的Word您使用的? 您是否對模板的構建有任何影響,例如,您可以添加書籤,如iDevelop建議或可能ContentControls(會更好)?

如果您沒有任何影響,那麼計劃在每個「複製」循環中輸入數據會更好。

注意:我希望您使用Documents.Add來從模板創建新文檔,以便實際上不更改模板?

+0

我使用的是Word 2013,對模板有影響。實際上,我使用的模板是通過手工編輯它,根據必須添加的新信息。我知道一些關於VBA的知識,我想知道,如果爲單詞添加書籤,比如「myWord」,應該它通過文檔是唯一的嗎? – vinx

+0

書籤名稱必須是唯一的,所以複製/粘貼書籤可能會非常棘手。某些版本的Word粘貼書籤,刪除前一個,其他人不粘貼書籤,保留原始。 既然這是Word 2013,我的傾向就是使用ContentControls。由於名稱可以複製,因此在複製/粘貼過程中不會丟失。 –

相關問題