0
点赞
收藏
分享

微信扫一扫

如何利用VBA实现Excel与Word交互?

盖码范 2023-05-25 阅读 76

excel与word数据交互的需求很常见,例如,利用excel明细生成word合同、利用excel明细生成word报告单、批量提取word数据到excel表格等等。

通常情况下大家都是手动复制粘贴。但是其实可以用程序去简化这一部分工作。

在做开发过程中,遇到过很多案例,在此总结出来。

如何利用VBA实现Excel与Word交互?_数据

一、什么是VBA?

首先我们来介绍下VBA。

 VBA是一种编程语言,它依托于Office软件,不能独立的运行,通过VBA可以实现各种Office软件操作的自动化。在这里我们就以VBA为中间语言去实现excel与word的数据交互。


二、交互的初级代码


2.1 通过VBA打开word

代码作用:创建word程序对象,把当前表格里面的数据按行写入word文档,并且保存为例子.docx。

Sub 方法1()
    Set doc = CreateObject("word.application")
    doc.Visible = True
    Set wd = doc.documents.Add
    rrow = ThisWorkbook.Worksheets(1).Range("a65536").End(3).Row
    For i = 2 To rrow
        wd.Paragraphs.Add
        wd.Paragraphs(i).Range.Text = ThisWorkbook.Worksheets(1).Cells(i, 3).Value
        ' Selection.Range.ListFormat.ListString'光标当前所在段落
    Next
    wd.SaveAs ThisWorkbook.Path & "\例子.docx"
End Sub


这里我们用的是后期绑定。

2.2 前期绑定和后期绑定区别

前期绑定需要在工具菜单的引用对话框下首先引用对象库,在编译期完成绑定,这样的优点是在编码过程中可以实时看到 word 对象引用的方法属性等提示。

后期绑定是指在运行代码的过程中创建对象,指定对象类型,不需要先声明。 对于后绑定来说,优点是不需要设置引用对话框,缺点是编码时不会有提示。

两者各有优缺点,看自己编程习惯选择即可。


三、具体案例

按规则提取word数据

Sub test()
Dim wdapp As Word.Application
Set wdapp = New Word.Application
wdapp.Documents.Open ThisWorkbook.Path & "\DEMO\9-5.demo.docx"
With wdapp
c = .Documents(1).Range
    Set regx = CreateObject("vbscript.regexp")
        With regx
            .Global = True
            .Pattern = "\d+、\S+。"
            Set Mat = .Execute(c)
            For Each m In Mat
                n = n + 1
                Cells(n, 1) = m.Value
            Next
        End With
End With
wdapp.Quit
End Sub




举报

相关推荐

0 条评论