专栏首页完美ExcelVBA专题06-3:利用Excel中的数据自动化构建Word文档—从Excel中访问Word文档

VBA专题06-3:利用Excel中的数据自动化构建Word文档—从Excel中访问Word文档

要从Excel中访问Word文档,需要建立对Word的连接。建立连接有两种方法:后期绑定和前期绑定。前期绑定能够更容易地利用自动提示编写代码,更早发现编码错误,而后期绑定直到代码执行时才创建连接,在版本上更灵活。

要使用前期绑定,则需要先创建对特定应用程序类型库的引用。在VBE中,单击菜单“工具—引用”,在“引用”对话框中找到所需的类型库并选中其前面的复选框,如下图6所示,创建对“MicrosoftWord 16.0 Object Library”的引用。

图6:引用所需的库

可以使用CreateObject函数创建后期绑定,例如语句:

Set wrdApp =CreateObject("Word.Application")

创建Word对象并赋值给变量wrdApp。

如无特别说明,我们下面的示例都使用前期绑定。

打开Word文档并粘贴Excel工作表数据

下面的程序复制Excel工作表中的数据并添加到指定Word文档的末尾。

Sub GetDataFromExcelToWord()
   Dim wrdApp As Word.Application
    '复制Excel工作表数据
   Worksheets("Sheet1").Range("A1:B3").Copy
    '创建与Word的连接
   Set wrdApp = New Word.Application
   With wrdApp
        '打开指定的Word文档
       .Documents.Open Filename:=ThisWorkbook.Path &"\myDatas.docx"
        '在文档末尾添加新段落并粘贴数据
       With .Selection
            .EndKey Unit:=wdStory
            .TypeParagraph
            .Paste
       End With
        '保存文档
       .ActiveDocument.Save
        '退出Word
       .Quit
   End With
    '释放对象变量
   Set wrdApp = Nothing
End Sub

在已经打开的Word文档中粘贴Excel数据

下面的代码复制工作表数据并粘贴到当前Word文档的末尾:

Sub CopyDataToOpenWord()
   Dim wrdApp As Word.Application
    '复制Excel工作表数据
   Worksheets("Sheet1").Range("A1:B3").Copy
    '创建对已打开的Word文档的连接
   Set wrdApp = GetObject(, "Word.Application")
    '在文档末尾添加段落并粘贴数据
   With wrdApp.Selection
       .EndKey Unit:=wdStory
       .TypeParagraph
       .Paste
   End With
    '释放对象变量
   Set wrdApp = Nothing
End Sub

代码中GetObject函数忽略了第一个参数,这将直接访问当前打开的活动Word文档。

创建新的Word文档并粘贴Excel数据

下面的代码将创建一个新的Word文档将添加从Excel中复制的数据:

Sub CopyDataToWord()
   Dim wrdApp As Word.Application
    '复制Excel工作表数据
   Worksheets("Sheet1").Range("A1:B3").Copy
   On Error Resume Next
    '试图创建与已打开的Word文档的连接
   Set wrdApp = GetObject(, "Word.Application")
    '如果连接失败,则打开Word应用程序
   If wrdApp Is Nothing Then
       Set wrdApp = GetObject("", "Word.Application")
   End If
   On Error GoTo 0
    '创建新文档
   With wrdApp
       .Documents.Add
       .Visible = True
   End With
    '在文档末尾添加段落并粘贴数据
   With wrdApp.Selection
       .EndKey Unit:=wdStory
       .TypeParagraph
       .Paste
   End With
    '释放对象变量
   Set wrdApp = Nothing
End Sub

代码中,GetObject函数的第一个参数为零长度的字符串,将创建一个新的Word实例。

本文分享自微信公众号 - 完美Excel(excelperfect),作者:fanjy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Excel小技巧41:在Word中创建对Excel表的动态链接

    Office套件之间协作配合非常方便。例如,我们可以在Word中放置一个来自Excel的表,并且可以随着Excel中该表的数据变化而动态更新。这需要在Word中...

    fanjy
  • VBA专题06-4:利用Excel中的数据自动化构建Word文档—Excel与Word整合示例1

    1.创建Word文档模板,用来作为数据分析结果发布平台。在模板中,在每个要插入数据的位置定义书签。当然,对于只导入一两个数据表来说,这一步可选。

    fanjy
  • VBA专题06-2:利用Excel中的数据自动化构建Word文档—熟悉Word VBA

    VBA是一种通用编程语言,适用于任何内置有VBA的应用程序,因此Word VBA与Excel VBA的语法一样,只是处理的对象模型不同。下面,我们通过一些示例语...

    fanjy
  • VBA专题06-2:利用Excel中的数据自动化构建Word文档—熟悉Word VBA

    VBA是一种通用编程语言,适用于任何内置有VBA的应用程序,因此Word VBA与Excel VBA的语法一样,只是处理的对象模型不同。下面,我们通过一些示例语...

    fanjy
  • ASPOSE.Cells & ASPOSE.Words 操纵Excel和Word文档的 .NET Core 实例

    Aspose.Total是Aspose公司旗下的最全的一套office文档管理方案,它提供的原生API可以对Word、Excel、PDF、Powerpoint、...

    solenovex
  • 【前端攻略--HTML/CSS】html 文档流的理解

    理解好文档流,有助于我们对css中定位和浮动的理解。什么是文档流呢,经过我看过的一些文章,加入自己的理解。我得出文档流的定义如下:

    小Gy
  • 图片文字如何转换成Word,这个简单方法你得会

    图片文字如何转换成Word?这是很多人在工作中都会遇到的问题,当你看到一个很好看的图片上面有你喜欢的文字,想把上面的文字保存下来,但是如果一个一个把字打出来那就...

    高效办公
  • 基于贝叶斯算法的文本分类算法

    1、基本定义: 分类是把一个事物分到某个类别中。一个事物具有很多属性,把它的众多属性看作一个向量,即x=(x1,x2,x3,…,xn),用x这个向量来代表这个...

    机器学习AI算法工程
  • 在VScode上配置Python开发环境

    Python:https://www.python.org/ftp/python/3.7.0/python-3.7.0-amd64.exe

    py3study
  • 面试题系列第2篇:new String()创建几个对象?有你不知道的

    答案众说纷纭,有说创建了1个对象,也有说创建了2个对象。答案对,也不对,关键是要学到问题底层的原理。

    用户1161110

扫码关注云+社区

领取腾讯云代金券