excel 中的宏本质就是把重复执行的表格操作录制成 VBA 代码,后续一键运行,自动完成批量处理,数据整理,格式刷新,批量计算这类重复性工作,日常经常重复相同操作的报表,使用宏可以大幅节省手工操作时间,很多新手不知道宏需要启用开发工具选项卡,也不清楚带宏文件必须保存成 xlsm 格式,运行的时候还会遇到宏被安全中心拦截,代码报错这类问题,只要掌握录制宏,查看 VBA 代码,手动修改代码,绑定按钮运行这套完整流程,理解宏的安全设置规则,最终就可以实现自动化办公,修改原始表格之后,再次运行宏就会按照预设代码重新执行整套操作。
一 宏的基础概念与准备工作
宏底层语言是 VBA,也就是 Visual Basic for Applications,有两种创建方式,第一种是录制宏,不需要手写代码,软件自动记录鼠标键盘操作,适合零基础用户,第二种是手动编写 VBA 代码,适合复杂逻辑,循环判断,调用函数这类录制无法实现的任务。
前置准备,调出开发工具选项卡,文件,选项,自定义功能区,勾选开发工具,确定,之后顶部菜单栏就会出现开发工具选项卡,宏相关按钮都在这里。
重要规则,普通 xlsx 格式不支持保存宏,文件必须另存为 xlsm 启用宏的工作簿格式,如果保存成 xlsx,宏代码会直接丢失。
二 录制宏完整操作步骤
1 打开 excel 表格,切换到开发工具选项卡,点击录制宏
2 在弹出窗口填写宏名称,宏名称不能有空格,不能以数字开头,可以设置快捷键,比如 Ctrl 加字母,选择保存在当前工作簿,也可以选择个人宏工作簿,这样所有 excel 文件都可以调用这个宏
3 点击确定,此时开始记录所有操作,接下来正常执行你想要自动化的操作,比如选中区域,设置格式,填充公式,排序,删除空行
4 操作全部完成之后,再次点击开发工具里面的停止录制,宏就保存完成
5 运行宏,点击宏按钮,选中对应的宏名称,点击执行,就会自动重复刚才录制的整套操作,也可以直接按之前设置的快捷键触发
三 VBA 编辑器查看与修改代码
1 开发工具选项卡,点击 Visual Basic,或者快捷键 Alt 加 F11,打开 VBA 编辑器
2 在左侧工程窗口,找到对应的模块,双击模块,右侧窗口就可以看到录制宏自动生成的 VBA 代码
3 可以直接手动修改代码,比如增加循环语句,if 判断,调整单元格范围,修改完成之后按 F5 可以直接在编辑器里面运行这个宏
4 修改之后关闭 VBA 编辑器,回到 excel 工作表,宏就已经更新,后续运行就是新版代码
简单示例代码,选中 A 列,给单元格设置数字格式
Sub 格式化数字 ()
Range ("A:A").NumberFormat = "0.00"
End Sub
四 给宏添加工作表按钮,方便点击运行
1 开发工具选项卡,插入,表单控件,按钮
2 在工作表空白位置拖动绘制按钮,松开鼠标之后,弹出指定宏窗口
3 选中你要绑定的宏,点击确定,可以右键按钮,编辑文字,改成容易识别的名称
4 之后只要点击这个按钮,就会直接运行绑定好的宏,适合给其他同事使用,不需要记住快捷键
五 宏安全中心设置
excel 默认会禁用宏,打开带宏文件的时候顶部会出现安全警告,需要手动启用内容。
设置路径,文件,选项,信任中心,信任中心设置,宏设置,这里有四个选项
禁用所有宏并且不通知,完全不能运行宏
禁用所有宏,并发出通知,推荐日常使用,打开文件会提示,可以手动选择启用
禁用除数字签名宏之外所有宏,适合企业环境
启用所有宏,不推荐,有安全风险,外部来源文件不要长期开启这个选项
要点,来源不明的带宏文件不要启用宏,恶意宏有可能篡改删除文件。
六 宏常见应用场景清单
批量统一单元格格式
批量插入公式,批量填充
批量删除空行空列
多工作表批量汇总数据
批量打印多个工作表
批量重命名工作表
自动筛选并且导出数据
七 高频错误排查表
| 错误现象 | 错误原因 | 解决办法 |
|---|---|---|
| 打开文件宏消失 | 保存成 xlsx 普通格式 | 另存为 xlsm 启用宏工作簿 |
| 运行提示宏被禁用 | 宏安全策略拦截 | 顶部点击启用内容,或者调整信任中心宏设置 |
| 录制宏运行结果不对 | 录制的时候选错区域,操作步骤错误 | 打开 VBA 编辑器修改 Range 单元格范围,重新录制 |
| 快捷键冲突 | 设置快捷键和系统或者 excel 原有快捷键重复 | 修改宏对应的快捷键 |
| 运行报运行时错误 | 工作表名称变动,单元格已经删除,代码引用区域失效 | 进入 VBA 编辑器,修改代码里面的工作表名称和单元格地址 |
| 找不到开发工具选项卡 | 默认没有调出 | 文件选项自定义功能区,勾选开发工具 |
八 补充注意事项
录制宏的时候,尽量不要大范围随意移动鼠标,录制会把多余的无效操作全部记录进代码,造成代码冗余,录制完成之后最好进入 VBA 编辑器清理多余代码。如果宏保存在个人宏工作簿,文件是 PERSONAL.XLSB,所有 excel 都可以调用这个宏,适合自己电脑长期通用宏。如果需要跨电脑使用宏,直接复制 xlsm 文件,但是目标电脑同样需要调整宏安全设置,否则依然无法运行。
【常见问题】
问题 1 excel 中的宏的使用方法里面为什么保存之后宏不见了
回答 1 excel 中的宏的使用方法里面宏丢失,是因为文件保存成 xlsx 普通格式,xlsx 不支持存储宏代码,excel 中的宏必须另存为 xlsm 启用宏的工作簿格式,才能保留宏代码。
问题 2 excel 中的宏的使用方法里面打开文件提示宏已禁用怎么办
回答 1 excel 中的宏的使用方法里面宏被禁用是 excel 默认安全策略,在顶部安全警告栏点击启用内容,也可以进入信任中心宏设置调整策略,excel 中的宏在外部来源文件启用前要确认文件安全。
问题 3 excel 中的宏的使用方法录制宏之后可以修改代码吗
回答 1 excel 中的宏的使用方法录制完成之后可以按 Alt 加 F11 打开 VBA 编辑器修改代码,增加循环判断逻辑,excel 中的宏支持手动编辑 VBA,不局限于录制出来的原始代码。
问题 4 excel 中的宏的使用方法可以做成点击按钮运行吗
回答 1 excel 中的宏的使用方法支持插入表单按钮并且指定宏,把宏绑定到工作表按钮,点击按钮就可以运行,excel 中的宏这种方式适合多人使用,不需要记忆快捷键。
【免责声明】
本教程基于桌面版 excel 通用版本讲解 excel 中的宏,不同版本 excel 在 VBA 支持和信任中心界面存在细微差别,宏代码运行会修改表格数据,运行前建议备份原文件,本内容仅作为学习参考,不承担因为宏代码错误造成文件数据损坏以及相关损失责任。


