Excel 宏本质就是把你重复手动操作录制成一段可重复执行的 VBA 代码,一键就能完成批量计算格式调整数据筛选报表生成这类重复工作,适合每天要处理大量表格,频繁复制粘贴下拉填充批量修改单元格的办公人员,学会之后可以大幅减少机械操作,降低人工出错概率。之所以推荐使用宏,是因为普通公式只能做静态计算,遇到多步骤联动操作跨工作表汇总批量插入图片批量打印这类复杂任务,公式很难实现,宏可以完整记录鼠标键盘操作逻辑,还能手动修改代码增加判断循环条件,实现公式做不到的自动化流程,不过宏默认是被 Excel 安全策略限制的,因为宏代码存在被恶意代码利用的风险,所以启用前需要理解安全设置,避免打开来源不明文件时自动运行危险宏。
一 前期准备 调出开发工具选项卡
默认打开 Excel 是看不到开发工具菜单的,宏的录制编辑运行入口都在这里,需要先手动调出
1 打开 Excel 文件,点击左上角文件
2 选择选项,弹出 Excel 选项窗口
3 切换到自定义功能区
4 在右侧主选项卡列表,勾选开发工具
5 点击确定,顶部菜单栏就会出现开发工具选项卡
二 录制宏 最基础入门操作
录制宏就是让 Excel 记录你的每一步表格操作,不需要一开始就会写代码,新手优先用这个方式
1 打开需要处理的 Excel 表格,定位到目标工作表
2 点击开发工具,选择录制宏
3 在录制宏窗口填写宏名称,名称不能带空格特殊符号,建议用英文或者中文有意义命名,比如批量填充日期
4 设置快捷键,可选填,比如 Ctrl+Shift+Q,后续可以直接快捷键运行宏
5 保存在选项,三个选择
| 保存位置 | 说明 | 适用场景 |
| 当前工作簿 | 宏只在这个文件生效 | 单次临时任务 |
| 个人宏工作簿 | 所有打开的 Excel 文件都能用这个宏 | 经常重复使用的通用宏 |
| 新工作簿 | 宏单独保存在新建文件 | 需要单独分发宏 |
6 点击确定,此时进入录制状态,状态栏会显示正在录制
7 完整执行你想要自动化的全部手动操作,比如选中区域设置边框统一字体颜色批量求和
8 操作完成之后,点击开发工具里面的停止录制,宏就保存完成
9 下次需要重复这套操作,直接点宏,选中这个宏,点击执行,或者按预设快捷键
三 查看与编辑宏 VBA 编辑器基础
录制完成的宏本质是 VBA 代码,可以打开编辑器修改优化,解决录制宏的缺陷,录制宏经常会冗余记录多余点击,还不能加判断循环
1 开发工具选项卡,点击 Visual Basic,或者快捷键 Alt+F11 打开 VBA 编辑器
2 左侧工程窗口,找到对应工作簿,展开模块,录制好的宏代码就在模块里面
3 代码窗口可以直接修改,比如修改单元格范围,增加 If 判断语句,增加 For 循环批量遍历工作表
4 修改完成按 Ctrl+S 保存,注意如果是普通 xlsx 格式是不能保存宏的,必须另存为 xlsm 启用宏的工作簿格式
四 运行宏的几种方式
1 宏对话框运行 开发工具点击宏,选中宏名称,点执行
2 快捷键运行 录制时设置好的组合键
3 按钮触发 可以在工作表插入形状或者表单控件按钮,指定宏,点击按钮就运行,适合给同事使用,不需要进入开发工具
4 自动运行宏 命名为 Workbook_Open,打开文件的时候自动执行宏
五 宏安全设置 重点必学
Excel 默认禁用宏,防止恶意代码自动运行,安全级别一共四档
| 安全级别 | 效果 | 推荐选择 |
|---|---|---|
| 禁用所有宏,并且不通知 | 宏完全无法运行,没有提示 | 最高安全,不推荐日常使用 |
| 禁用所有宏,并发出通知 | 打开文件提示是否启用宏,手动选择启用 | 日常推荐 |
| 禁用除已签署宏之外的所有宏 | 只信任数字签名宏 | 企业环境 |
| 启用所有宏 | 全部宏自动运行,风险很高 | 不建议长期开启 |
操作路径 文件 选项 信任中心 信任中心设置 宏设置
补充说明 来自互联网下载的文件,Excel 会标记为受保护视图,需要点击启用编辑之后,才可以启用宏
六 保存格式说明
普通 xlsx 文件保存之后宏会直接丢失,想要保留宏必须选择格式
xlsm 启用宏的工作簿,这是最常用格式
xls 旧版兼容格式,也支持宏,但是新版功能有限
xlsx 纯表格,不支持宏,保存会提示删除宏
七 进阶要点 录制宏常见问题优化
录制宏的局限性 录制会记录绝对引用,如果下次数据位置变了,宏就会执行出错,解决办法是在 VBA 代码改成相对引用,录制宏之前点击相对引用按钮,再开始录制,这样代码记录的是相对偏移,不是固定单元格 A1 这种绝对坐标
代码调试 出错的时候可以按 F8 逐行调试,单步运行,查看每一行代码执行结果,找到报错位置,VBA 编辑器里面设置断点,方便排查错误
删除宏 打开宏窗口,选中不需要的宏,点击删除,注意个人宏工作簿里面的宏删除之后所有文件都不再可用
八 简单代码示例
Sub 批量设置表头()
Range("A1:D1").Select
Selection.Font.Bold = True
Selection.Interior.ColorIndex = 36
End Sub
这段宏的作用就是把 A1 到 D1 表头加粗并且填充底色
掌握 Excel 宏之后,你可以把日常重复性表格操作固化成自动化流程,新手优先从录制宏入手,熟悉之后再学习 VBA 代码编辑,灵活搭配相对引用安全设置和 xlsm 保存格式,就能稳定高效使用宏,同时牢记安全原则,只给自己信任来源的文件启用宏,规避代码风险。
【常见问题】
问题 1 Excel 宏保存之后重新打开宏不见了是什么原因
回答 1 出现这个问题基本是文件保存成了 xlsx 格式,xlsx 本身不支持 Excel 宏,保存的时候 Excel 会自动清除宏代码,解决办法是另存为 xlsm 启用宏的工作簿,下次打开就可以保留 Excel 宏。
问题 2 运行 Excel 宏提示被禁用怎么办
回答 2 这是 Excel 宏安全策略拦截,进入文件选项信任中心设置,把宏设置改成禁用所有宏并发出通知,重新打开文件,在顶部提示栏点击启用内容,就可以正常运行 Excel 宏。
问题 3 录制好的 Excel 宏换一份表格运行位置错乱怎么办
回答 3 这是录制宏默认使用绝对引用导致,重新录制 Excel 宏之前,先点击开发工具里面的相对引用按钮,再进行录制,生成的 Excel 宏代码就会按照相对位置执行,不会固定锁定原来单元格坐标。
问题 4 Excel 宏能不能跨多个工作表批量处理数据
回答 4 可以,录制基础 Excel 宏之后,进入 VBA 编辑器修改代码,加入循环语句遍历工作表,就可以让 Excel 宏跨工作表批量完成汇总格式修改筛选等操作,这也是 Excel 宏相比普通公式的核心优势。
【免责申明】
本文 Excel 宏相关教程仅用于办公学习参考,宏代码具备执行系统操作的能力,请不要运行来源不明文件内的宏代码,避免造成数据损坏或者信息安全风险,操作前建议备份原始表格文件,因自行修改宏代码或者不当启用宏产生的数据损失,由使用者自行承担。


