Office整合应用技术02:在Word文档中自动获取Excel数据

2020-04-18 00:21:36 浏览数 (2)

本文介绍的技术需要先在Word文档中设置书签,Excel中的数据将会被放置在这个书签处。这是在Word中获取并放置Excel数据的一个基本技术,下面的示例展示了其运行原理,可供进一步拓展应用参考。

如下图1所示,在一个名为“excelandword02.docx”的Word文档中,在需要放置Excel数据的位置设置一个名为“SaleData”的书签。(在Word中,单击功能区“插入”选项卡“链接”组中的“书签”,在弹出的“书签”对话框中,输入书签名)

图1

关闭该Word文档。

下图2所示为要放置到Word文档中的工作表数据。

图2

在Excel工作簿中,打开VBE,单击菜单“工具——引用”,找到并选中“MicrosoftWord XX.0 Object Library”库前的复选框,如下图3所示。

图3

插入一个标准模块,输入下面的代码:

代码语言:javascript复制
Sub InsertExcelDataInWord()    Dim rng As Range    Dim wd As Word.Application    Dim wdDoc As Word.Document    Dim wdRng As Word.Range      '赋值数据区域    Set rng =Worksheets("Sheet1").Range("A1:C7")      '复制数据    rng.Copy      '打开Word文档    Set wd = New Word.Application    Set wdDoc =wd.documents.Open(ThisWorkbook.Path & "excelandword02.docx")    wd.Visible = True      '设置目标书签    Set wdRng =wdDoc.bookmarks("SaleData").Range      '如果有旧数据表则删除并粘贴新表    On Error Resume Next    wdRng.Tables(1).Delete    wdRng.Paste      '调整表的列宽    wdRng.Tables(1).Columns.SetWidth (rng.Width/ rng.Columns.Count), wdAdjustSameWidth      '重新插入书签    wdDoc.bookmarks.Add "SaleData",wdRng      '保存并退出Word文档    wd.Quit SaveChanges:=True      '释放对象变量    Set wdRng = Nothing    Set wdDoc = Nothing    Set wd = NothingEnd Sub

我们假设工作簿和Word文档在相同的文件夹。在代码中,我们删除了书签处原来可能存在的数据表,然后粘贴新的数据表,以避免原来已经存在数据表,再粘贴后数据重复。注意,粘贴数据表时,也会同时覆盖该位置的书签,因此,在后面我们又重新插入书签,以备下一次运行该程序更新数据时使用。

运行代码后的效果如下图4所示。

图4

0 人点赞