基于Excel数据更新Word表格

基于Excel数据更新Word表格,excel,ms-word,vba,Excel,Ms Word,Vba,我在MS Word中创建了一个报告模板。现在,我在Excel电子表格中有一些数据需要与报表模板合并。我探索了MS Word中的邮件合并功能,在那里我可以创建多个报告。但是,正如我所看到的,如果每一行的数据是一致的,那么这个函数只是静态的,并且只能工作,而我没有。 Excel中的示例数据为, 数据以word格式显示,格式如下:, Sub-CopyRowToRC() 表2.范围(“A:B”)。清除 i=1 j=2 Application.ScreenUpdating=False 附页1 Las

我在MS Word中创建了一个报告模板。现在,我在Excel电子表格中有一些数据需要与报表模板合并。我探索了MS Word中的
邮件合并
功能,在那里我可以创建多个报告。但是,正如我所看到的,如果每一行的数据是一致的,那么这个函数只是静态的,并且只能工作,而我没有。 Excel中的示例数据为,

数据以word格式显示,格式如下:,

Sub-CopyRowToRC()
表2.范围(“A:B”)。清除
i=1
j=2
Application.ScreenUpdating=False
附页1
LastRow=.Cells(.Rows.Count,“A”).End(xlUp).Row
以
对于i=1到最后一行
附页2
LastRows=.Cells(.Rows.Count,“A”).End(xlUp).Row
如果i>1,那么
LastRows=LastRows+2
如果结束
以

如果j因为这似乎是一种标准的文档格式-您将要使用的东西-第一步是创建一个具有基本“结构”的Word文档。键入所有永远不会更改的静态文本并设置其格式。使用功能区中的“插入/链接/书签”命令为来自Excel(或任何其他源)的动态数据设置“目标”

将其另存为模板(dotx文件格式)。更改
WdObj.documents。添加
行代码以获取此文件路径。将基于模板创建一个新文档,该文档将包含静态文本和书签。确保将其设置为
Word.Document
对象:

Dim wdDoc as Word.Document 'or As Object if you don't have a reference to the Word library
Set wdDoc = WdObj.Documents.Add("filepath")
以代码中定义的书签为目标*:

Dim rngTarget as Word.Range
Set rngTarget = wdDoc.Bookmarks("NameOfBookmark").Range
rngTarget.PasteExcelTable False, False, False

Set rngTarget = wdDoc.Bookmarks("DifferentBookmark").Range
rngTarget.Text = Sheet1.Range("A2").Value2 'for example, to get the name
完成后,不要忘记在关闭前保存文档

wdDoc.SaveAs "filepath"
wdDoc.Close
wdObj.Quit
Set wdDoc = Nothing
Set wdObj = Nothing
此外,请正确使用错误处理。目前,您不会看到任何错误,但您需要看到它们。否则,您将不知道代码是否失败或失败的原因。从代码中删除出错时的
继续下一步
——这只有在使用
GetObject
拾取正在运行的Word应用程序时才有意义。在这种情况下,紧接着是
On Error GoTo 0
,这将重新打开错误

*注意:您可以直接指定给书签,但如果您需要其他内容(如格式)的范围,最好分两步完成。直接分配:

wdDoc.Bookmarks("NameOfBookmark").Range.Text = "abc"

你能更确切地说明你的实际问题是什么吗?
wdDoc.Bookmarks("NameOfBookmark").Range.Text = "abc"