首页 > 其他分享 >如何利用VBA实现Excel与Word交互?

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

时间:2023-05-25 10:33:40浏览次数:39  
标签:VBA Set Word 绑定 Excel End wdapp word

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




标签:VBA,Set,Word,绑定,Excel,End,wdapp,word
From: https://blog.51cto.com/u_15786999/6345347

相关文章

  • wordpress插件:用YARPP显示相关文章(wordpress 6.2)
    一,安装插件:插件->安装插件->搜索:RelatedPosts安装后可以进行配置二,测试效果说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest     对应的源码可以访问这里获取: https://github.com/liuhongdi/     或: https:......
  • XML文件批量合并成Excel表格(Python)
    importosimportxml.etree.ElementTreeasETimportpandasaspdfolder_path="C:/xxx/Desktop/2022"#替换为你的文件夹路径#获取文件夹中的所有文件file_list=os.listdir(folder_path)#创建一个空的DataFrame来存储所有XML文件的数据all_data=pd.DataFra......
  • #yyds干货盘点# LeetCode程序员面试金典:Excel表列名称
    1.简述:给你一个整数 columnNumber,返回它在Excel表中相对应的列名称。例如:A->1B->2C->3...Z->26AA->27AB->28... 示例1:输入:columnNumber=1输出:"A"示例2:输入:columnNumber=28输出:"AB"示例3:输入:columnNumber=701输出:"ZY"示例4:输入:colum......
  • HTB ACADEMY-Hacking WordPress WRITE UP
    YouhavebeencontractedtoperformanexternalpenetrationtestagainstthecompanyINLANEFREIGHTthatishostingoneoftheirmainpublic-facingwebsitesonWordPress.Enumeratethetargetthoroughlyusingtheskillslearnedinthismoduletofindavar......
  • 58个分类背单词英语词典ACCESS\EXCEL数据库
    英语词典、背单词类的数据已经发了很多很多了,打算今天这一个将是最后一个了,后续没有颠覆性的好的话就不再发这类数据了,今天这一份的背单词数据库好处是有58个分类,之前发过有27个分类的《1万6千多最好的背单词SQLITE数据库》。单词表:36238条记录,可以看一下word_root_id字段的作用......
  • Python自动化办公对每个子文件夹的Excel表加个表头(Excel不同名且有xls文件)
    大家好,我是皮皮。一、前言上一篇文章,我们抛出了一个问题,这篇文章来进行解答。如果针对子文件夹下不同的Excel表名,而且Excel表格类型包括了.xls和.xlsx应该如何处理?要求一步到位。二、实现过程其实这里依靠【ChatGPT】给的答案,只需要修改其中一行代码就可以搞定了,如下所示:imp......
  • 近万条开心猜灯谜猜谜语ACCESS\EXCEL数据库
    元宵节马上就到了,中国民间素有“观灯猜谜”的习俗,今天再给大家一款猜灯谜的数据,看看有没有朋友喜欢(你需要什么数据如果我网站没有也可以交给我找找)。据记载,猜灯谜自南宋起开始流行,至今不衰。“猜灯谜”又叫“打灯谜”,出现在宋朝。南宋时,首都临安每逢元宵节时制谜、猜谜的人众多......
  • 用pageOffice控件实现 office word文档在线编辑 表格中写数据的方法
    PageOffice对Word文档中Table的操作,包括给单元格赋值和动态添加行的效果。1应用场景OA办公中,经常要在文档的指定位置表格,填充后端指定数据。如word文档中,表格数据如下表格中人员信息怎么把后端的关键数据,填充到word文档表格中呢?2实现方法文档中设置好书签,设置好表......
  • Spring Boot 我随手封装了一个万能的 Excel 导出工具,传什么都能导出!
    前言如题,这个小玩意,就是不限制你查的是哪张表,用的是什么类。我直接一把梭,嘎嘎给你一顿导出。我知道,这是很多人都想过的,至少我就收到很多人问过我这个类似的问题。我也跟他们说了,但是他们就是不动手,其实真的很简单。不动手怎么办?我出手呗。不多说开搞。正文玩法很简单。......
  • 2万多条谜语&脑筋急转弯ACCESS\EXCEL数据库
    这个数据库主要包含两个表,考虑到原破解APP数据就是这样也就不折分了,一个是有5186条记录的脑筯急转弯表,一个是有18326条记录的谜语表,两个表中的记录都有详细的分类字段,具体看截图下的分类统计。脑筋急转弯分类统计:灯谜(79)、动物(81)、儿童(190)、搞笑(77)、经典(110)、冷笑话(338)、数学(80)、......