前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Office整合应用技术02:在Word文档中自动获取Excel数据

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

作者头像
fanjy
发布2020-04-18 00:21:36
2.6K0
发布2020-04-18 00:21:36
举报
文章被收录于专栏:完美Excel完美Excel

本文介绍的技术需要先在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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档