激活并运行录制的宏到多个Google SpreadSheet / Workbook

时间:2019-07-06 14:38:45

标签: google-apps-script google-sheets google-sheets-macros

我有多个电子表格是从1个模板复制的。每个电子表格的工作原理与从1个获得公式的模板中复制的结果完全相同。

反正有没有激活并运行所有电子表格的记录宏?

我通常只复制记录的宏的脚本(如果某些公式发生更改),然后一一遍到所有60个电子表格以粘贴/激活该脚本,以便它可以采用新的公式更改。这样,它可以使所有电子表格保持一致。

有什么方法可以激活模板中所做的更改,该更改已记录到​​所有其他电子表格中?

2 个答案:

答案 0 :(得分:1)

  

反正有没有激活并运行所有电子表格的记录宏?

严格地说,运行Google Sheets宏的唯一方法是通过Google Sheets UI,但是宏代码的运行方式可以与任何其他Google Apps脚本代码相同。

为了使答案简短而有用,请不要运行每个电子表格中保存的功能,而要使用“主” Google Apps Script项目。

从广义上讲,这个“主项目”:

  1. 获取电子表格列表(您可以使用Google Apps脚本驱动器服务来做到这一点)。
  2. 在电子表格列表中循环浏览,以对每个电子表格执行所需的操作

有很多方法可以获取电子表格的列表。您可以使用搜索方法,获取文件夹中的电子表格,以及其他选择。

要执行循环,最常见的方法是使用for循环语句,但是您可以使用其他语句和Array方法,例如Array.prototype.forEach

库有助于避免在多个位置上具有相同代码的副本,但是您仍然必须创建Google Apps脚本项目并将库添加为资源。

一个更好的选择是创建一个G Suite编辑器附加组件,因为它们安装一次,并且在所有电子表格(或文档,表单,幻灯片)上都可供安装该附加组件的用户和以下用户使用:使用附件的电子表格。

备注

通常,使用宏记录器创建的宏非常慢,因为在记录过程中每次单击图纸和范围时,它们通常都包含一个“激活”,以及包含activeSpreadsheet()activeSheet()应该更换。

答案 1 :(得分:0)

“手动”(和丑陋)的方式是每次在新电子表格中复制和粘贴脚本。与常规脚本不同,还需要复制并粘贴清单文件(在Google脚本窗口->视图->显示清单文件中)。清单是保留分配的键盘快捷键。