Google 表格宏

借助 Google 表格,您可以录制 ,以复制您定义的 一系列特定界面互动。录制宏后,您可以将其与键盘快捷键(格式为 Ctrl+Alt+Shift+Number)相关联。使用该快捷键可快速再次执行完全相同的宏步骤,通常是在不同的位置或针对不同的数据。 您还可以通过 Google 表格的扩展程序 > 菜单激活宏。

录制宏时,Google 表格会自动创建一个 Apps 脚本函数(即宏函数),以复制宏步骤。 宏函数会添加到与工作表绑定的 Apps 脚本项目中,位于名为 macros.gs 的文件中。如果已存在与工作表绑定的同名项目文件,宏函数会附加到该文件中。 Google 表格还会自动更新脚本项目 清单,记录分配给宏的名称和键盘 快捷键。

由于每个录制的宏都完全在 Apps 脚本中定义,因此您可以直接在 Apps 脚本编辑器中对其进行修改。您甚至可以在 Apps 脚本中从头开始编写宏,也可以将已编写的函数转换为宏。

在 Apps 脚本中创建宏

您可以将使用 Apps 脚本编写的函数用作宏函数。一种简单的方法是通过 导入现有 函数 从 Google 表格编辑器。

或者,您也可以按照以下步骤在 Apps 脚本编辑器中创建宏:

  1. 在 Google 表格界面中,依次选择扩展程序 > Apps 脚本 ,以在 Apps 脚本编辑器中打开与工作表绑定的脚本。
  2. 编写宏函数。宏函数不应接受任何实参,也不应返回任何值。
  3. 修改脚本清单 ,以创建宏并将其与宏函数相关联。为其分配唯一的键盘快捷键和名称。
  4. 保存脚本项目。然后,您就可以在工作表中使用该宏了。
  5. 在工作表中测试宏函数,以验证其是否按预期运行。

修改宏

如需修改附加到工作表的宏,请执行以下操作:

  1. 在 Google 表格界面中,依次选择扩展程序 > > 管理宏
  2. 找到要修改的宏,然后依次选择 > 修改宏。这会在 Apps 脚本编辑器中打开包含宏函数的项目文件。
  3. 修改宏函数以更改宏行为。
  4. 保存脚本项目。然后,您就可以在工作表中使用该宏了。
  5. 在工作表中测试宏函数,以验证其是否按预期运行。

将函数作为宏导入

如果已有与工作表绑定的脚本,您可以将脚本中的函数 导入 为新宏,然后为其分配键盘快捷键。为此,请修改清单文件,并向 sheets.macros[] 属性添加另一个元素。

或者,您也可以按照以下步骤从 Google 表格界面将函数作为宏导入:

  1. 在 Google 表格界面中,依次选择扩展程序 > > 导入
  2. 从显示的列表中选择一个函数,然后点击添加函数
  3. 选择 以关闭对话框。
  4. 依次选择扩展程序 > > 管理宏
  5. 在列表中找到刚刚导入的函数。为宏分配唯一的键盘快捷键。您还可以在此处更改宏名称;该名称默认为函数名称。
  6. 点击更新 以保存宏配置。

宏的清单结构

以下清单文件示例代码段显示了 清单中定义 Google 表格宏的部分。 清单的 sheets 部分定义了分配给宏的名称和键盘快捷键,以及宏函数的名称。

清单包含与 Apps 脚本属性相关的其他组件。sheets 键下的字段直接与 Google 表格功能相关。此示例只是完整清单文件的一部分,并非功能齐全的清单。

{
  ...
  "sheets": {
    "macros": [{
      "menuName": "QuickRowSum",
      "functionName": "calculateRowSum",
      "defaultShortcut": "Ctrl+Alt+Shift+1"
    }, {
      "menuName": "Headerfy",
      "functionName": "updateToHeaderStyle",
      "defaultShortcut": "Ctrl+Alt+Shift+2"
    }]
  }
}

如需详细了解如何构建 Google 表格宏清单,请参阅 Google 表格宏清单资源

最佳做法

在 Apps 脚本中创建或管理宏时,请遵循以下准则:

  1. 宏越轻巧,性能就越高。请尽可能限制宏执行的操作数量。
  2. 宏最适合需要频繁重复且几乎不需要配置的例行操作。对于其他操作,请考虑 改用自定义菜单项
  3. 请始终注意,宏键盘快捷键必须是唯一的,并且给定的工作表在任何时候都只能有 10 个带有快捷键的宏。任何其他 宏都只能通过扩展程序 > 菜单执行。
  4. 如果宏对单个单元格进行更改,您可以先选择整个单元格范围,然后激活宏,以将宏应用于该范围的单元格。 这意味着,通常没有必要创建宏来复制预定义单元格范围内的相同操作。

无法执行的操作

您可以使用宏执行的操作存在一些限制:

在绑定脚本之外使用宏

宏在与特定 Google 表格绑定的脚本中定义。如果在独立脚本或 Web 应用中定义宏,宏 定义会被忽略。

在 Google 表格 Google Workspace 插件中定义宏

您无法使用 Google 表格 Google Workspace 插件分发宏定义。 Google 表格插件项目中的任何宏定义都会被该插件的用户忽略。

在脚本库中分发宏

您无法使用 Apps 脚本 分发宏定义。

在 Google 表格之外使用宏

宏只是 Google 表格中的一项功能,Google 文档、表单或 Google 幻灯片中没有此功能。