【问题标题】:What are the steps to share a script with multiple worksheets through gsuite?通过 gsuite 与多个工作表共享脚本的步骤是什么?
【发布时间】:2018-05-22 06:35:14
【问题描述】:

我想在我的 gsuite 帐户中执行的操作

(动态)将一个脚本与多张工作表关联起来,这样我就可以在一个文件中维护它们的通用代码。 (例如,使用打开电子表格时显示的选项填充自定义菜单。)

我的尝试

  • 使用 https://script.google.com 的脚本编辑器创建了一个脚本,但无法将脚本与工作表关联
  • 通过脚本编辑器的“文件>打开”选项加载外部创建的脚本
  • 使用工作表菜单中的脚本编辑器选项直接从工作表创建脚本,但找不到共享它的选项
  • 发布脚本,但这似乎使公众可以访问脚本
  • 我已阅读有关 container bound scripts 的信息,但我发现文档不清楚并且不确定如何继续。

【问题讨论】:

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


【解决方案1】:

你的第一个想法很好:

使用https://script.google.com 的脚本编辑器创建了一个脚本,但无法将该脚本与工作表关联

在脚本中,您可以使用它们的 ID 编辑多个工作表。例如:

// this function edits two sheets at once
function editBothCells() {

  // assigns a variable to a spreadsheet
  var ss1 = SpreadsheetApp.openById("1CMLVG3Wnk4C-Ck0j7YKY_vgZZNj58mip_VRNUdrjpy8");
  var ss2 = SpreadsheetApp.openById("1kxC_0AwCwapVWG5grRNBLSHYhKpcVOHbrXTZdG9fOc4");

  // runs a function on both spreadsheets
  boldenA4(ss1,ss2);
}

// this function takes cell A4 and makes it bold for all arguments
function boldenA4(spreadsheet1, spreadsheet2, and_so_on){

  for(var i = 0; i < arguments.length; i++){
    arguments[i].getSheets()[0]
    .getRange("A4")
    .setValue("hello stackoverflow") // could be any string 
    .setFontWeight("bold"); 
  }
}

以下是工作表和脚本的链接:

【讨论】:

  • 我不得不改变我的问题,因为这回答了我的问题,但我没有具体说明我的意思! :) 我希望创建一个具有通用功能的菜单,这些功能旨在对在特定文件夹中打开的任何工作表进行操作。
猜你喜欢
  • 2018-05-05
  • 2018-07-02
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 2010-09-28
  • 2021-11-05
相关资源
最近更新 更多