【发布时间】:2020-08-20 13:24:11
【问题描述】:
我有一个包含多个个人信息的 Excel 工作表。我需要为每个人填充一个单词模板。所有名称都列在Column A 中,每个信息子集都列在Columns B:N 中。我有一个预先制作的模板,其中包含某些文本值,我将用特定列中的数据替换这些值。我的代码目前非常适合单个行。我需要它循环,以便我可以一键创建和填写所有文档。我还需要一些帮助来编写基于“”单元格中值 0、1、2 或 3 的代码部分,将插入一行文本。我尝试使用IF 公式在excel 中编写公式,但我需要输入的文本行太长。任何帮助都将不胜感激。
我的代码如下...
Sub ReplaceText()
Dim wApp As Word.Application
Dim wDoc As Word.Document
Set wApp = CreateObject("Word.Application")
wApp.Visible = True
Set wDoc = wApp.Documents.Open("z:\Sound Sleepers\forms\PCP.dotx")
With wDoc
.Application.Selection.Find.Text = "<<PCP>>"
.Application.Selection.Find.Execute
.Application.Selection = Range("D2")
.Application.Selection.EndOf
.Application.Selection.Find.Text = "<<name>>"
.Application.Selection.Find.Execute
.Application.Selection = Range("A2")
.Application.Selection.EndOf
.Application.Selection.Find.Text = "<<dob>>"
.Application.Selection.Find.Execute
.Application.Selection = Range("B2")
.Application.Selection.EndOf
.Application.Selection.Find.Text = "<<dos>>"
.Application.Selection.Find.Execute
.Application.Selection = Range("M2")
.Application.Selection.EndOf
.Application.Selection.Find.Text = "<<results>>"
.Application.Selection.Find.Execute
.Application.Selection = Range("O2")
.Application.Selection.EndOf
.Application.Selection.Find.Text = "<<Sleep>>"
.Application.Selection.Find.Execute
.Application.Selection = Range("L2")
.Application.Selection.EndOf
.Application.Selection.Find.Text = "<<Sleep>>"
.Application.Selection.Find.Execute
.Application.Selection = Range("L2")
.Application.Selection.EndOf
.SaveAs2 Filename:=("Oneida PCP"), _
FileFormat:=wdFormatXMLDocument, AddtoRecentFiles:=False
End With
End Sub
【问题讨论】: