在日常办公中,我们经常需要处理大量的WORD文档,很多情况下这些文档需要处理的操作是相同的,比如批量进行页面格式设置,批量替换某些文字等等,如果能够实现对这些文档的批量处理效率岂不高多了!下面教大家怎么实现,整个过程用到了Word的VBA编程,但是你根本不需要懂一句代码,通过四步就可以搞定。
第一步:打开一个要处理的Word文档第二步:调出Word开发工具选项卡
第三步:录制操作过程勾选后确定,会发现Word多了一个开发工具选项卡,点击该选项卡,点录制宏按钮。Word会记录你的每一步操作。比如简单输入几个字ABCDEF
对Word操作完成后,点停止录制。然后再点 Visual Basic 按钮,会出现下面的界面:
上面的宏1就是刚才录制的代码,将光标放到代码区域,也就是 第一行到第五行的区域范围,然后点运行按钮,你会发现Word中多了一个ABCDEF,是不是很神奇?第四步:实现批量处理通过上面的方法我们把处理一个文档的方法记录了下来,如何批量处理多个文档呢,也很简单。
把下面的代码复制到刚才录制的代码前面, 设置第4行和第5行的内容,就大功告成了测试:将光标放到 开始批处理代码块中,按执行按钮,程序会自动打开指定文件夹下的每一个Word文档(包括子文件夹文档),并在每一个文件头插入ABCDEF六个字母,然后自动关闭Word文档。
所有文档处理完毕后会弹出一个"批量处理完毕!“ 的对话框录制不同的宏,可以进行各种各样的批量处理,怎么样,是不是感觉功能太强大了?所有这些我们不用写一行代码就可以实现,当然你有一定的编程基础的话,还可以修改录制的宏或者编写更加复杂的宏功能。
我们也会不定期发布一些常用的宏功能,供大家调用所以请大家关注我们的头条号,及时获取最新资料说明:Word的录制宏的功能,不能录制所有操作,尤其一些鼠标操作录制效果不好,如果想在这方面深入体会的话可以下载安装Office 2003 ,录制的效果是所有office版本中最好的。
Private myFun As StringSub 开始批量处理() dim myDir as string myFun = "宏1" 修改成录制的宏名称 myDir= "D:\我的文件夹\" 修改成要处理的Word文档所在的文件夹
SearchFiles myDir, "*.doc 批量处理doc格式文档 SearchFiles Mydir, "*.docx" 批量处理docx格式文档 MsgBox "批量处理完毕!", vbInformation + vbApplicationModal
End Sub功能:这个函数可以遍历指定一个目录下的所有文件,包括子目录.也可以指定文件类型遍历用法:SearchFiles "C:\Program Files\WinRAR\", "*" 查找所有文件。
Function SearchFiles(Path As String, FileType As String) Dim Files() As String 文件路径 Dim Folder() As String 文件夹路径
Dim a, b, c As Long Dim sPath As String If Right$(Path, 1) <> "\" Then Path = Path & "\" sPath = Dir(Path & FileType) 查找第一个文件
Do While Len(sPath) 循环到没有文件为止 a = a + 1 ReDim Preserve Files(1 To a) Files(a) = Path & sPath 将文件目录和文件名组合,并存放到数组中
Documents.Open Files(a)’打开文件 Application.Run myFun’执行自定义函数 ActiveDocument.Close‘关闭文件 sPath = Dir 查找下一个文件
DoEvents 让出控制权 Loop sPath = Dir(Path & "\", vbDirectory) 查找第一个文件夹 Do While Len(sPath) 循环到没有文件夹为止 If Left$(sPath, 1) <> "." Then 为了防止重复查找
If GetAttr(Path & "\" & sPath) And vbDirectory Then 如果是文件夹则 b = b + 1 ReDim Preserve Folder(1 To b) Folder(b) = Path & sPath & "\" 将目录和文件夹名称组合形成新的目录,并存放到数组中
End If End If sPath = Dir 查找下一个文件夹 DoEvents 让出控制权 Loop For c = 1 To b 使用递归方法,遍历所有目录 SearchFiles Folder(c), FileType
NextEnd Function
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。