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

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

我有多个从 1 个模板复制的电子表格。每个电子表格的工作原理与它们刚刚从 1 个具有公式的模板复制的完全相同。

有没有办法为所有电子表格激活和运行录制的宏?

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

是否有任何方法可以激活记录到所有其他电子表格的模板中所做的更改?

最佳答案

Is there anyway to activate and run a recorded macro to all the spreadsheets?

严格来说,运行 Google 表格宏的唯一方法是通过 Google 表格用户界面,但宏代码的运行方式与任何其他 Google Apps 脚本代码的运行方式相同。

为了使此答案简短且有用,请忘记运行保存在每个电子表格中的函数并使用“主”Google Apps 脚本项目。

关于这个广义上的“大师项目”:

  1. 获取电子表格列表(您可以使用 Google Apps Script Drive Service 来执行此操作)。
  2. 循环遍历电子表格列表,对每个电子表格执行您需要执行的操作

获取电子表格列表的方法有很多种。您可以使用搜索方法,获取文件夹中的电子表格等。

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

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

更好的替代方法可能是创建一个 G Suite 编辑器插件,因为它们安装一次并且在所有电子表格(或文档、表单、幻灯片)上可供安装该插件的用户和使用插件的电子表格。

备注

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

关于google-apps-script - 激活并运行录制的宏到多个 Google SpreadSheet/Workbook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56915062/

相关文章:

google-apps-script - Google Spreadsheet SCRIPT 检查编辑的单元格是否在特定范围内

google-apps-script - 在 Google 表格中,我如何编写默认缩放操作的脚本?

email - 谷歌电子表格: Can't Fetch User Email via Session. getActiveUser().getEmail()

google-apps-script - 如何修复 "Exception: Unexpected error while getting the method or property open on object SpreadsheetApp"?

google-apps-script - 如何使用 OnChange() 触发器

google-apps-script - 剪切一部分单元格值,然后编辑并将结果粘贴到单独的单元格中

google-apps-script - Google 电子表格脚本编辑器 MailApp.sendEmail 未设置replyTo?

google-apps-script - Google Apps 脚本从电子表格脚本更新融合表

google-apps-script - Google Sheets 脚本语言中的 "Currentregion"概念