以前工作需要研究过一段时间的VBA,写了一些宏,大大简化了Word和Excel的操作。现整理记录如下,以备不时之需。
Visual Basic for Applications(VBA)是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件,如Word、Excel、Access、Powerpoint。在以上程序中按下Alt+F11即可打开VBA专用的IDE,无需额外安装。
如果不明白一个操作如何用代码实现,可以使用录制宏的功能,手动操作一次,查看宏代码并精简——录制得到的代码包括了大量可以删除的默认设置。
IDE中将光标定位到某个函数,按下F1可看到该函数的全中文帮助,非常方便。
遍历所有已打开的word文档
1 | For Each docOpened In Documents |
Word 将目录下所有文档转换为txt,并删除原文档
1 | Sub 目录下doc转txt() |
获取网页源代码
1 | Dim httpRequest As Object |
汉字编码成URL用的字符串
1 | Public Function Escape(ByVal strText As String) As String |
Excel合并相同文件名的单元格,不同文件名的行填充不同的背景色
1 | Dim i As Integer, j As Integer, k As Integer 'i用于遍历,j用于计数须合并的行数,k用于填充颜色 |
若同目录下不存在某文件夹,则创建
1 | Dim sr |
提取word文档里的图片
1 | Sub 存成html() |
Excel双击则复制单元格内容到剪切板
1 | Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) |
用对话框打开Excel文件
1 | iFileName = Application.GetOpenFilename("Excel文件 (*.xlsx;*.xls), *.xlsx;*.xls") |
Excel按指定列升序排列
1 | With wbf.Sort |
Excel汇总同目录文件
1 | Sub HzWb() |
Excel 将指定数据另存为txt文件
1 | '新建一张表用于存放待保存的数据 |
Word替换昨日今日去年之类的字眼
1 | Sub 替换昨今去() |
Word 删除新闻中的多余代码和文字
1 | Sub 新闻排版() |