vba word 指定的表格_Word与Excel用VBA交互(一)批量写入Word表格

前面和小伙伴们分享了,用office软件自带的邮件合并功能来进行Word与Excel交互,这个邮件合并生成的只有一个Word文档,要想生成一个一个Word文档,就需要用VBA

邮件合并-忍者档案

3385a5784d079e81d338a7e19b5d0986.png

0d5c76d9b6b61b0ead933d387f7e7f89.png

今天,就和小伙伴们分享用VBA来生成一个一个Word文件

代码如下

小伙伴们来看第4行的代码,在Excel要使用Word对象需要用createobject函数创建一个Word对象,这个就是你启动Word软件的意思

和创建字典对象的写法一样

第7行的代码,咱们去循环每一行的信息,每循环一次,就打开当前文件夹下面的火影忍者.docx文档,这是模板文档,提供模板文档,然后写入到模板文档,会比用代码创建文档方便

word.tables(1)表示打开的Word文档中的第一个表格

Word文档的表格单元格VBA用cell表示,而Excel的单元格vba用cells,这2个有区别,需要特别注意

第9行-第19行的代码是依次对打开的Word文档的第一个表格中的单元格进行赋值

第20行的代码判断电脑中是否有这个图片,如果有这个图片,则插入到Word文档中第1行第5列单元格中

第21行的代码是Word中插入图片的方法

第23行的代码是用名字命名另存到当前文件夹下面

第24行的代码关闭刚刚这个打开又另存为的Word文档

Sub main()Dim wordDim appSet app = CreateObject("Word.Application")Dim arrarr = Range("a1").CurrentRegionFor i = 2 To UBound(arr)    Set word = app.documents.Open(ThisWorkbook.Path & Application.PathSeparator & "火影忍者.docx")    word.tables(1).Cell(1, 2).Range.Text = arr(i, 2)    word.tables(1).Cell(1, 4).Range.Text = arr(i, 3)    word.tables(1).Cell(2, 2).Range.Text = arr(i, 1)    word.tables(1).Cell(2, 4).Range.Text = arr(i, 4)    word.tables(1).Cell(3, 2).Range.Text = arr(i, 5)    word.tables(1).Cell(3, 4).Range.Text = arr(i, 6)    word.tables(1).Cell(5, 1).Range.Text = arr(i, 7)    word.tables(1).Cell(5, 2).Range.Text = arr(i, 8)    word.tables(1).Cell(5, 3).Range.Text = arr(i, 9)    word.tables(1).Cell(5, 4).Range.Text = arr(i, 10)    word.tables(1).Cell(5, 5).Range.Text = arr(i, 11)    If Dir(arr(i, 12)) <> "" Then    word.tables(1).Cell(1, 5).Range.InlineShapes.AddPicture arr(i, 12), False, True    End If    word.SaveAs ThisWorkbook.Path & Application.PathSeparator & arr(i, 2) & ".docx"    word.CloseNext iEnd Sub

22125bd1952950fb39957219b92f6bc8.png

还有,看完不点个赞再走吗?点下下面右下角的小花呀

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值