我有一个带有菜单的google表格,调用脚本。脚本将另存为带有已保存版本的库。此工作表将作为Google域模板保存在共享驱动器上。用户每周制作约10张纸,并且每次都可以授权脚本。
可以使用哪些解决方案来避免此重复过程。加载项似乎不是正确的解决方案,因为脚本必须仅对此电子表格有效]
function onEdit(e) {
const rangeName="A2";
var ass=SpreadsheetApp.getActiveSpreadsheet();
var as=ass.getActiveSheet();
var adresse=as.getActiveRange().getA1Notation();
Logger.log(JSON.stringify(e));
if (adresse===rangeName) {
SpreadsheetApp.getActiveSpreadsheet().rename(as.getRange(rangeName).getValue());
ass.toast("DONE!");
}
如果正确,我认为您最好的选择是将脚本部署为附件,并为域中的所有用户安装附件。工作流程如下:
function yourFunction() {
var templateIdentifier = SpreadsheetApp.getActive().getSheetByName("Settings").getRange("A1").getValue();
if (templateIdentifier = "12345") { // Check that file is copy of template "12345"
// Execute the desired script actions
}
}
模板及其所有副本均应具有此值,因此您可能应该使用原始模板中的版本protect this cell(所有副本都将保留此保护)。就个人而言,我还将将此单元格放在隐藏的工作表中,以便用户看不到它。
Test该插件正常工作,并且publish it。遵循[本指南]。