我需要自动修改模板文档(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对象吗?
答案 0 :(得分:0)
不幸的是,我还没有足够的要点将其添加为评论,它实际上属于......
您使用的是哪个版本的Word? 您是否对模板的构造有任何影响,例如,您可以添加诸如iDevelop建议或可能的ContentControls之类的书签(会更好)?
如果你没有影响力,那么你最好计划在每个“复制”循环中输入数据。
注意:我希望您使用Documents.Add从模板创建新文档,这样您实际上不会更改模板?