通过gsuite与多个工作表共享脚本的步骤是什么?

时间:2017-12-08 03:14:16

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

我想在我的gsuite帐户中做什么

  

将脚本(动态)关联到多个工作表,以便将其公共代码保存在一个文件中。 (例如,使用在电子表格打开时显示的选项填充自定义菜单。)

我尝试了什么

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

1 个答案:

答案 0 :(得分: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"); 
  }
}

以下是表格和脚本的链接: