vba word 查找_VBA应用之Word篇

Hi,大家好,前面几期介绍了VBA的编程基础,大家都掌握了吗?可以通过公众号下方的菜单栏编程基础来回顾VBA编程基础

今天我们就要开始VBA编程的实际应用了,这里我们先从Word开始,看看VBA如何应用在Word文档上面。

我们先回想一下自己平时使用Word的情形,绝大部分使用Word的场景都是新建或打开已经存在的Word文档,然后开始一些编辑操作,例如增加,删除,查找,替换及排版等操作,操作完成之后,再保存退出Word.

如果上述的这些针对文档的操作仅仅是操作有限的几份文档,那完全可以手动依次打开,然后修改完保存就可以了,但是如果是成千上万份呢?手动修改就太麻烦了。

假如现在有500份Word文档,需要批量修改文档里面出现的一个日期的任务,那么我们可以通过此前学过的VBA编程基础来处理这样的问题。

首先,我们需要通过遍历循环,来遍历每一份Word文档,这样就能确保每一份文档都能访问到。

其次,我们需要在遍历循环的循环体中,针对遍历的每一份Word文档,需要执行如下操作:

  1. 执行打开文档的操作,

  2. 执行查找日期的操作,然后对查找到的日期执行替换操作,

  3. 保存,并关闭文档

因此,编程的思路明确了,剩下的就是用具体的代码实现,也就是如何编写VBA代码操作Word文档。

虽然这些步骤看起来挺容易,但是里面涉及到的东西还是挺多的,还是要慢慢来,打好基础。

这里需要引入一个概念---对象,对象是对具体的物体在计算机中的一种抽象,简单来说就是计算机用来表示各种各样的物体,可以理解为一种自定义的变量类型,与我们此前接触到的变量类型类似。

在VBA中,Word是用Document对象来表示的,因此,对于文档的操作,都是可以通过对Document对象的操作来完成的。

但是我们有时候同时打开了多个文档,这种情况下,多个文档则是通过Documents集合来表示的,Documents包含所有打开的文档。

既然有打开文档,那么相对应的就有关闭文档的操作,同时,在关闭的时候,我们可能还涉及到了保存及另存为等操作,这些都是可以通过文档对象来操作的。

下面通过一个具体的例子,来演示一下如下新建并打开文档,然后保存文档,具体的代码如下:

Sub Wordtest()Dim Mydoc As DocumentSet Mydoc = Documents.AddMydoc.SaveAs2 FileName:="D:\myFirstdoc.doc"Debug.Print Mydoc.Name & "保存到" & Mydoc.FullNameMydoc.CloseEnd Sub

复制粘贴上面的代码到VBA代码编辑窗口,如下图所示:

aae48f5549d302eaa1c4287e9236cbf6.png

点击运行按钮,执行子程序,看到这次的运行如下:

23e658fa17f4c4773b587db173768df8.png

其中立即窗口的输出是为了方便调试打印出来的,实际上这里的运行结果是在电脑的D盘根目录生成了一个名叫myFirstdoc.doc的文档。
怎么样,是不是很神奇?通过简单的几行代码就新建并重命名了一个新的文档。
下面来逐句解释一下上述的代码:

Sub Wordtest()Dim Mydoc As Document        //定义一个文档对象变量,变量名字为MydocSet Mydoc = Documents.Add    //新建一个文档,并将此文档绑定到此前定义的变量上面,后续通过变量即可操作文档Mydoc.SaveAs2 FileName:="D:\myFirstdoc.doc"  //将新建文档重命名为myFirstdoc.doc并保存到D盘根目录Debug.Print Mydoc.Name & "保存到" & Mydoc.FullName    //调试输出新建的文档的名字及保存路径Mydoc.Close        //关闭文档End Sub


代码里面的文件名和保存的路径可以根据自己的需求随意更换的,如果不写明保存路径,默认是保存到当前用户的我的文档目录下的。

觉得有用吗?想了解更多吗?下方扫码关注喔!

37f21db5a117ebcc42c80cf6b2d77d4e.png

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页