运行宏

在 Microsoft Excel 中运行宏有几种方式。宏是可用于自动执行任务的一个操作或一组操作。宏使用 Visual Basic for Applications 编程语言录制。可以始终通过单击功能区上的“”命令运行宏。根据指定的宏运行方式,还可通过以下方式运行宏:按 Ctrl 组合快捷键、单击快速访问工具栏上或功能区自定义组中的按钮,或者单击对象、图形或控件上的区域。此外,可以在打开工作簿时自动运行宏。

注意: 如果将 Excel 中的宏安全级别设置为“禁用所有宏,并且不通知”,则 Excel 将只运行具有数字签名或存储在可信位置(如计算机上的 Excel 启动文件夹)中的那些宏。如果要运行的宏没有数字签名或位于 可信位置,可以临时更改启用所有宏的安全级别。

运行宏之前

需要更改 Excel 中的几项设置,然后才能运行宏:

  1. 如果“开发工具”选项卡不可用,请显示该选项卡。有关详细信息,请参阅显示“开发工具”选项卡

  2. 若要临时将安全级别设置为启用所有宏,请执行下列操作:

    1. “开发工具”选项卡上的“代码”组中,单击“宏安全性”

      功能区上的“开发工具”选项卡
    2. 在“宏设置”类别中的“宏设置”下,单击“启用所有宏(不推荐;可能会运行有潜在危险的代码)”,然后单击“确定”。

      注意: 为帮助防止运行有潜在危险的代码,我们建议您在使用完宏之后恢复任一禁用所有宏的设置。

  1. 请打开包含宏的工作簿。

  2. 在“开发工具”选项卡上的“代码”组中,单击“”。

    功能区上的“开发工具”选项卡
  3. 在“宏名”框中,单击要运行的宏。

  4. 执行下列操作之一:

    • 也可以按 Ctrl+F8 运行宏。若要停止宏,请按 Esc。

    • 若要从 Microsoft Visual Basic for Applications (VBA) 模块运行宏,请单击“编辑”,然后在“运行”菜单上单击“运行子过程/UserForm”,或者按 F5。

  1. 在“开发工具”选项卡上的“代码”组中,单击“”。

    功能区上的“开发工具”选项卡
  2. 在“宏名”框中,单击要指定到 Ctrl 组合快捷键的宏。

  3. 单击“选项”。

    将显示“宏选项”对话框。

  4. 在“快捷键”框中,键入要与 Ctrl 键一起使用的任意小写字母或大写字母。

    注意: 包含该宏的工作簿打开时,该快捷键将替代任何等效的默认 Excel 快捷键。

    如需 Excel 中已分配的 Ctrl 组合快捷键列表,请参阅 Excel 快捷键和功能键一文。

  5. 在“说明”框中,键入对该宏的描述。

  6. 单击“确定”以保存更改,然后单击“取消”关闭“”对话框。

要从快速访问工具栏上的按钮运行宏,必须先将按钮添加到工具栏。要执行此操作,请参阅 Assign a macro to a button(向按钮分配宏)。

可以创建一个显示在功能区中选项卡上的自定义组,然后向该组中的按钮分配宏。例如,可以将名为“我的宏”的自定义组添加到“开发工具”选项卡,然后将宏(显示为按钮)添加到这个新组。要执行此操作,请参阅Assign a macro to a button(向按钮分配宏)。

通过单击图形对象上的区域来运行宏

可以在图形上创建一个热区,用户可通过单击该热区来运行宏。

  1. 在工作表中,插入图形对象,如图片、剪贴画、形状或 SmartArt。

    要了解有关插入图形对象的信息,请参阅添加、更改或删除形状

  2. 要在现有对象上创建热区,请单击“插入”>“形状”,选择要使用的形状,然后在现有对象上绘制该形状。

    形状
  3. 右键单击创建的热区,然后单击“指定宏”。

  4. 执行下列操作之一:

    • 若要给图形对象指定现有宏,请双击宏或在“宏名”框中输入宏的名称。

    • 要录制新宏以将其分配给所选图形对象,请单击“录制”,在“录制宏”对话框中键入宏的名称,然后单击“确定”开始录制宏。完成录制宏后,请在“代码”组中的“开发工具”选项卡上单击“停止录制按钮图像

      提示: 也可以单击状态栏左边的“停止录制按钮图像

    • 若要编辑现有宏,请在“宏名”框中单击宏的名称,然后单击“编辑”。

  5. 单击“确定”。

  6. 在工作表中,选择热区。这将显示“绘图”工具,添加“格式”选项卡。

  7. 在“格式”选项卡上的“形状样式”组中,单击“形状填充”旁边的箭头,然后单击“无填充”。

    “形状填充”颜色选项菜单

  8. 单击“形状轮廓”旁边的箭头,然后单击“无轮廓”。

如果录制宏并在保存时将其命名为 Auto_Open,则在每次打开包含该宏的工作簿时都将运行该宏。在打开工作簿时自动运行宏的另一种方法是,使用 Visual Basic 编辑器 在工作簿的 Open 事件中编写一个 VBA 过程。Open 事件是内置工作簿事件,会在每次打开工作簿时运行其宏代码。

创建一个 Auto_Open 宏

  1. 如果您想将此宏保存在一个特定的工作簿中,请先打开此工作簿。

  2. 在“开发工具”选项卡上的“代码”组中,单击“录制宏”。

  3. 在“宏名”框中,键入 Auto_Open

  4. 在“宏的存储位置”列表中,选择要用来保存宏的工作簿。

    提示: 如果要在每次使用 Excel 时都能够使用宏,请选择“个人宏工作簿”。在选择“个人宏工作簿”时,如果不存在隐藏的个人宏工作簿 (Personal.xlsb),Excel 会创建一个,并将宏保存在此工作簿中。在 Windows Vista 中,此工作簿保存在 C:\Users\用户名\AppData\Local\Microsoft\Excel\XLStart 文件夹中。如果未能在此找到该工作簿,则其可能保存在 Roaming 子文件夹中(而不是 Local 子文件夹中)。在 Microsoft Windows XP 中,此工作簿保存在 C:\Documents and Settings\用户名\Application Data\Microsoft\Excel\XLStart 文件夹中。每次启动 Excel 时,XLStart 文件夹中的工作簿都会自动打开。如果希望在另一个工作簿中自动运行个人宏工作簿中的宏,还必须将该工作簿保存在 XLStart 文件夹中,以便在启动 Excel 时同时打开这两个工作簿。

  5. 单击“确定”,然后执行要录制的操作。

  6. 在“开发工具”选项卡上的“代码”组中,单击“停止录制” 按钮图像

    提示: 也可以单击状态栏左边的“停止录制”。

    状态栏上的“停止录制”按钮

注释: 

  • 如果您在第 6 步中选择了将宏保存在“当前工作簿”“新工作簿”中,请将此工作簿保存或移动到某个 XLStart 文件夹中。

  • Auto_Open 宏的录制受到以下限制:

    • 如果保存 Auto_Open 宏的工作簿在本身的 Open 事件中已包含了一个 VBA 过程,Open 事件的 VBA 过程将会覆盖 Auto_Open 宏中的所有操作。

    • 如果使用 Open 方法以编程方式打开工作簿,则 Auto_Open 宏将被忽略。

    • Auto_Open 宏在任何其他工作簿打开之前运行。所以,如果录制希望 Excel 在默认的 Book1 工作簿或从 XLStart 文件夹加载的工作簿上执行的操作,那么,在重启 Excel 时,Auto_Open 宏将失败,因为在打开默认工作簿和启动工作簿这二者之前,宏已运行。

      如果您遇到这些限制,就不应录制 Auto_Open 宏,而必须按本文下一节所述,为“打开”事件创建 VBA 过程。

  • 如果要在 Excel 启动时不运行 Auto_Open 宏,请在启动 Excel 时按住 Shift 键。

为工作簿的 Open 事件创建一个 VBA 过程

以下示例在打开工作簿时使用 Open 事件来运行宏。

  1. 保存并关闭所有打开的工作簿。

  2. 打开要向其中添加宏的工作簿,或者创建新工作簿。

  3. 在“开发工具”选项卡上的“代码”组中,单击“Visual Basic”。

  4. 在“方案管理”窗口中,右键单击“ThisWorkbook”对象,然后单击“查看代码”。

    提示: 如果“方案管理”窗口不可见,请在“查看”菜单上单击“方案管理”。

  5. 在“代码”窗口上方的“对象”列表中,选择“工作簿”。

    这将自动为 Open 事件创建一个空过程,例如:

    Private Sub Workbook_Open()

    End Sub

  6. 将下面的代码行添加到该过程:

    Private Sub Workbook_Open()
    MsgBox Date
    Worksheets("Sheet1").Range("A1").Value = Date
    End Sub

  7. 切换到 Excel 并将该工作簿保存为启用宏的工作簿 (.xlsm)。

  8. 关闭然后重新打开该工作簿。当您再次打开该文件时,Excel 将运行 Workbook_Open 过程,在一个消息框中显示今天的日期。

  9. 单击消息框中的“确定”。

    注意: 由于运行 Workbook_Open 过程,Sheet1 上的单元格 A1 也会包含该日期。

需要更多帮助吗?

可随时在 Excel 技术社区中咨询专家,在解答社区获得支持,或在 Excel User Voice 上建议新功能或功能改进。

返回页首

另请参阅

打开工作簿时自动运行宏

使用宏录制器自动执行任务

录制宏以在启动 Excel 时打开特定的工作簿

在单个工作簿中创建并保存所有宏

保存宏

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×