使用vba写入docx文档的特定点

时间:2015-10-08 08:48:45

标签: vba ms-word word-vba

我需要自动修改模板文档(docx),根据我读入一些文本文件的信息,我正在使用VBA。模板文档有一个预定义的记录,如下所示:

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复制和写入文档的特定点? 我想到了类似下面的内容:(代码可能不正确,我会把它放在那里解释我的想法)

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

答案 0 :(得分:0)

不幸的是,我还没有足够的要点将其添加为评论,它实际上属于......

您使用的是哪个版本的Word? 您是否对模板的构造有任何影响,例如,您可以添加诸如iDevelop建议或可能的ContentControls之类的书签(会更好)?

如果你没有影响力,那么你最好计划在每个“复制”循环中输入数据。

注意:我希望您使用Documents.Add从模板创建新文档,这样您实际上不会更改模板?