录制 Excel 宏:保存为 .xlsm、查看代码、绑定按钮与清理录制结果

适用场景

每天重复同一套格式调整、打印设置、复制粘贴,想先让 Excel 帮你做一遍。录制宏不需要会写代码,Excel 会把操作翻译成 VBA;但录制出来的代码通常很啰嗦,只适合做起点,不适合直接长期使用。

准备工作

  1. 打开“开发工具”选项卡:文件 → 选项 → 自定义功能区 → 勾选“开发工具”。
  2. 把文件保存为“Excel 启用宏的工作簿(.xlsm)”。.xlsx 保存时会丢掉所有宏。
  3. 在“开发工具 → 宏安全性”里确认宏设置。个人电脑可以用“禁用所有宏,并发出通知”,需要时点“启用内容”;不要把安全级别长期设为“启用所有宏”。

录制宏

  1. 开发工具 → 录制宏。
  2. 填写宏名(不能有空格,建议用英文和数字)、快捷键(可选,Ctrl+Shift+字母)、保存位置:
    • 当前工作簿:只在这个文件里可用;
    • 新工作簿:单独保存;
    • 个人宏工作簿:所有工作簿都能用,保存在隐藏的 PERSONAL.XLSB。
  3. 如果需要按当前单元格的相对位置操作,点“使用相对引用”;需要固定操作某个区域时不要点。
  4. 执行要录制的操作。
  5. 开发工具 → 停止录制。

录制时尽量只做必要操作:少点选、少滚动、少用鼠标右键菜单。录制结束后打开“开发工具 → 宏 → 编辑”,会看到生成的 VBA。

查看与运行

录制代码的清理

录制出来的代码经常长这样:

Sub FormatReport()
    Range("A1:D1").Select
    Selection.Font.Bold = True
    Selection.Interior.Color = RGB(220, 230, 241)
End Sub

Select 和 Selection 依赖当前选中的工作表、当前活动区域,换一张表或换一个文件就可能出错。可以改成:

Sub FormatReport()
    With ThisWorkbook.Worksheets("报表").Range("A1:D1")
        .Font.Bold = True
        .Interior.Color = RGB(220, 230, 241)
    End With
End Sub

清理原则:

宏安全性

易错点

相关条目

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. 为什么录制好的宏保存成 .xlsx 后消失了?
  2. 录制代码里的 Selection 为什么容易出错?
  3. 个人宏工作簿保存在哪里,有什么特点?
答案
  1. .xlsx 不支持宏,保存时会丢弃 VBA 项目;要保存为 .xlsm。
  2. Selection 依赖当前选中的区域和工作表,换表或换文件后可能操作错位置。
  3. 保存在隐藏的 PERSONAL.XLSB,对所有工作簿可用,但不会随文件自动分发。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令