google-apps-script如何避免重复代码?

时间:2016-04-26 09:16:46

标签: google-apps-script

我有10张不同的谷歌表。我有一个非常基本的谷歌应用程序脚本,适用于所有这些。这是脚本:

function myRecalculate() { 

var ss = SpreadsheetApp.openById('sheet ID');
var sheet = ss.getSheetByName("Sheet7"); 
var cell = sheet.getRange('A1') 
var number = Math.floor(Math.random() * 8) + 1;
cell.setValue(number) 

}

我希望这也用于其他9张纸。在GAS中有没有办法避免重复此代码10次?我每次都可以复制粘贴并更改工作表ID,但感觉不对。

有简单的解决方案吗?

编辑。通过在数组中打包所有sheetID来解决问题,然后通过数组循环该函数:

function myRecalculate() { 

var idBE = "id of spreadsheet1"
var idDE = "id of spreadsheet2"
var idFR = "id of spreadsheet3"

// pack them in array
var id = [idBE, idDE, idFR]

// loop through array, do something with sheet
for (i in id){
var ss = SpreadsheetApp.openById(id[i])

var sheet = ss.getSheetByName("Sheet7"); 
var cell = sheet.getRange('A1') 
var number = Math.floor(Math.random() * 8) + 1;
cell.setValue(number) 
}}

1 个答案:

答案 0 :(得分:2)

你可以使用图书馆!

以下是Apps脚本库的参考:Libraries

注意:代码在库中运行的速度不如直接从项目运行代码那么快。

简而言之,您可以转到File -> Manage Versions创建代码版本。保存新版本。然后转到File -> Project Properties并复制Project Key

转到下一个Apps脚本项目,然后转到Resources -> Libraries。将项目密钥粘贴到Find a Library文本字段中,然后点击Select。选择您要使用的库的版本,然后点击保存。

您现在可以在该Apps脚本项目中引用代码,例如:MyProject.myRecalculate()