Google 表格宏

您可以使用 Google 表格来记录,这些宏会复制您定义的一系列特定界面互动。录制宏后,您可以将其以 Ctrl+Alt+Shift+Number 的形式链接到键盘快捷键。您可以使用该快捷方式再次快速执行精确的宏步骤(通常是在其他位置或不同的数据上)。 您也可以通过 Google 表格的扩展程序 > 菜单启用此宏。

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

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

在 Apps 脚本中创建宏

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

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

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

修改宏

您可以执行以下操作,以编辑附加到工作表的宏:

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

将函数作为宏导入

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

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

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

宏的清单结构

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

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

如需详细了解 Apps 脚本清单的构建方式,请参阅清单结构指南。表格部分介绍了用于定义 Google 表格宏的字段。

最佳实践

在 Apps 脚本中创建或管理宏时,建议您遵循以下准则。

  1. 宏量轻量时效果更好。请尽可能限制宏会执行的操作。
  2. 宏最适合需要频繁或很少配置重复处理的旋转操作。对于其他操作,请考虑改用自定义菜单项
  3. 请记住,宏键盘快捷键必须独一无二,并且给定工作表一次只能包含十个带快捷键的宏。其他任何宏只能通过扩展程序 > 菜单执行。
  4. 对单个单元格进行更改的宏可以应用于一系列单元格,方法是先选择完整范围,然后激活宏。这意味着通常不需要创建在预定义的单元格范围内复制相同操作的宏。

您无法执行的操作

对宏的用途有一些限制:

在绑定脚本之外使用宏

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

在 Google 表格插件中定义宏

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

在脚本库中分发宏

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

在 Google 表格外部使用宏

宏只是 Google 表格中的一项功能,Google 文档、表单或幻灯片并不存在。