excel学习库

excel表格_excel函数公式大全_execl从入门到精通

VBA|Excel+Word双剑合璧系列2

上篇文章我们介绍了如果在Excel中利用VBA技术访问Word文档,今天我们就说说如何在Excel中利用VBA写入/提取Word文档。写入Word文档 当前文件夹中存在一个test的Word文档,文档中仅有一张六列三行的空表格,现在我们在Excel中利用VBA向此Word文档中写入内容。当前文件夹,打开一个Excel,打开Visual Basic视图,输入以下代码:点击运行按钮,即可发现,Word文档中的表格1,已经被填充数字。 最终结果如下图所示:代码解释: wdapp.Documents.Open Filename:=ThisWorkbook.Path & "\test.docx"打开当前文件夹下名字为test的Word文档; wdapp.Visible = True,打开之后,使文档处于可视的状态; wdapp.Documents(1).Tables(1).Range,Word文档表格1(Tables(1))的范围,这里表格共三行六列,所以range等于18; .Cells(i).Range = i,这里将Word表格1中写入对应的数字; 完整代码如下所示: Sub 数据写入word中() Dim wdapp As Word.Application Dim wddoc As Document Set wdapp = New Word.Application wdapp.Documents.Open Filename:=ThisWorkbook.Path & "\test.docx" wdapp.Visible = True With wdapp.Documents(1).Tables(1).Range For i = 1 To .Cells.Count .Cells(i).Range = i Next End With End Sub 读取Word中的数据 下图中,Word中存在一张表 表1,里面存储着不同的数据,现在我们需要把纯数据项提取出来 ,并汇总到Excel单元格中。打开Visual Basic视图,输入以下代码:点击运行按钮,完成数据的提取,结果如下图所示:代码说明: Left(.Cells(i).Range, Len(.Cells(i).Range) - 2): .Cells(i).Range为当前Word单元格中的内容,如第一个单元格内容是【18】,但提取出来的并不是单纯的18,在VBA本地窗口中可以发现,它是一个【18 】,18+空格+一个正方形;但是我们只要数字18,后面的空格和正方形是不需要的,这里用一个left函数,去除后两位,提取数字; IsNumeric(u): 判断u是否为数字,如果是则进入下一步,如果不是则结束。 程序运行完一定要关闭Word哦,wdapp.Quit,切记! 明细代码如下图所示: Sub 提取数据() On Error Resume Next Dim wdapp As Word.Application Dim wddoc As Document Set wdapp = New Word.Application wdapp.Documents.Open Filename:=ThisWorkbook.Path & "\test.docx" wdapp.Visible = False n = 1 With wdapp.Documents(1).Tables(1).Range For i = 1 To .Cells.Count u = Left(.Cells(i).Range, Len(.Cells(i).Range) - 2) If IsNumeric(u) Then n = n + 1 Cells(n, 1) = u End If Next End With Cells(1, 1) = "提取数字" wdapp.Quit End Sub 小结 以上就是关于Excel中利用VBA操作Word的相关介绍,如果觉得有用,欢迎关注我,定期分享数据小技巧!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接