在 Google 表格中,您可以记录用于复制您定义的一系列特定界面交互的宏。记录宏后,您可以将其关联到 Ctrl+Alt+Shift+Number
形式的键盘快捷键。您可以使用该快捷方式再次快速执行确切的宏步骤,通常是在其他位置或针对不同的数据执行。您也可以依次转到 Google 表格的扩展程序
> 宏菜单来激活宏。
当您记录宏时,Google 表格会自动创建一个用于复制宏步骤的 Apps 脚本函数(即宏函数)。该宏函数会添加到绑定到工作表的 Apps 脚本项目中,位于名为 macros.gs
的文件中。如果已经有一个项目文件绑定到使用该名称的工作表,则宏函数会附加到其中。Google 表格还会自动更新脚本项目清单,记录分配给宏的名称和键盘快捷键。
由于记录的每个宏都完全在 Apps 脚本中定义,因此您可以直接在 Apps 脚本编辑器中修改它们。您甚至可以在 Apps 脚本中从头开始编写宏,或者接受已编写的函数并将其转换为宏。
在 Apps 脚本中创建宏
您可以接受以 Apps 脚本编写的函数,并将其用作宏函数。 最简单的方法是从 Google 表格编辑器导入现有函数。
或者,您也可以按照以下步骤在 Apps 脚本编辑器中创建宏:
- 在 Google 表格界面中,依次选择扩展程序 > Apps 脚本,以在 Apps 脚本编辑器中打开绑定到工作表的脚本。
- 编写宏函数。宏函数不应接受任何参数,也不返回任何值。
- 请修改脚本清单以创建宏并将其关联到宏函数。为其分配唯一的键盘快捷键和名称。
- 保存脚本项目。然后,您就可以在工作表中使用该宏了。
- 测试表格中的宏函数,以验证其是否按预期运行。
编辑宏
您可以通过执行以下操作来修改附加到工作表的宏:
- 在 Google 表格界面中,依次选择扩展程序 > 宏 > 管理宏。
- 找到要修改的宏,然后依次选择 > 修改宏。系统随即会打开 Apps 脚本编辑器,并打开包含宏函数的项目文件。
- 修改宏函数,以更改宏的行为。
- 保存脚本项目。然后,您就可以在工作表中使用该宏了。
- 测试表格中的宏函数,以验证其是否按预期运行。
将函数作为宏导入
如果某个脚本已经绑定到某个工作表,则可以将脚本中的一个函数作为新宏import,然后为其分配键盘快捷键。为此,您可以修改清单文件,并向 sheets.macros[]
属性添加其他元素。
或者,您也可以按照以下步骤从 Google 表格界面将函数作为宏导入:
- 在 Google 表格界面中,依次选择扩展程序 > 宏 > 导入。
- 从显示的列表中选择一个函数,然后点击添加函数。
- 选择 以关闭对话框。
- 依次选择扩展程序 > 宏 > 管理宏。
- 在列表中找到您刚刚导入的函数。为该宏分配一个 独一无二的键盘快捷键您还可以在此处更改宏的名称;名称默认为函数的名称。
- 点击更新以保存宏配置。
宏的清单结构
以下清单文件示例代码段显示了清单中定义 Google 表格宏的部分。清单的 sheets
部分定义了分配给宏的名称和键盘快捷键,以及宏函数的名称。
{
...
"sheets": {
"macros": [{
"menuName": "QuickRowSum",
"functionName": "calculateRowSum",
"defaultShortcut": "Ctrl+Alt+Shift+1"
}, {
"menuName": "Headerfy",
"functionName": "updateToHeaderStyle",
"defaultShortcut": "Ctrl+Alt+Shift+2"
}]
}
}
如需详细了解如何构建 Google 表格的宏清单,请参阅 Google 表格的宏清单资源。
最佳实践
在 Apps 脚本中创建或管理宏时,建议您遵循以下准则。
- 轻量级宏的性能更佳。请尽可能限制宏所执行的操作数量。
- 宏最适合需要频繁重复执行且配置很少或根本没有配置的旋转操作。对于其他操作,请考虑改用自定义菜单项。
- 请注意,宏键盘快捷键必须是唯一的,一个工作表一次只能包含 10 个具有快捷键的宏。所有其他宏都只能通过扩展程序 > 宏菜单执行。
- 对单个单元格进行更改的宏可以应用到一系列单元格,方法是先选择整个范围,然后激活宏。这意味着通常不需要创建在预定义的单元格范围中重复相同操作的宏。
禁止事项
使用宏可以执行的操作有一些限制:
在绑定脚本之外使用宏
宏是在绑定到特定 Google 表格的脚本中定义的。如果宏定义是在独立脚本或Web 应用中定义的,则会被忽略。
在 Google 表格插件中定义宏
您无法使用 Google 表格插件分发宏定义。Google 表格插件项目中的所有宏定义都会被忽略。
在脚本库中分发宏
您无法使用 Apps 脚本库分发宏定义。
在 Google 表格之外使用宏
宏只是 Google 表格中的一项功能,在 Google 文档、表单或幻灯片中不存在。