我有大量简单的电子表格(每个电子表格与不同的代理商共享),以及一个用于与所有这些电子表格进行交互的大型“管理”电子表格。
添加新代理时,我使用脚本(绑定到管理电子表格)来复制和重命名模板电子表格。模板电子表格有一个onEdit触发器,不复制到新实例。当我尝试在复制后添加它(请参阅下面的脚本)时,它会被添加到管理电子表格而不是新的电子表格中。
function NewAgent(filename) {
// create new spreadsheet from template
var folder = DriveApp.getFoldersByName(AgentFolder).next();
var tmplt = DriveApp.getFilesByName(AgentTemplate);
var newfile = tmplt.next().makeCopy(filename, folder );
var newspread = SpreadsheetApp.openById( newfile.getId() );
ScriptApp.newTrigger("MyFunction").forSpreadsheet(newspread).onEdit().create();
SpreadsheetApp.flush();
}
函数MyFunction
绑定到模板(并且也出现在绑定到新电子表格的脚本中)。
如上所述,函数NewAgent
与管理脚本绑定。
结果是触发器被添加到管理电子表格......
想法?
由于
答案 0 :(得分:0)
试试这个。问题可能是你指的是" newfile"变量
function NewAgent(filename) {
// create new spreadsheet from template
var folder = DriveApp.getFoldersByName(AgentFolder).next();
var tmplt = DriveApp.getFilesByName(AgentTemplate);
var newfile = tmplt.next().makeCopy(filename, folder );
var newspread = SpreadsheetApp.openById( DriveApp.getFilesByName( filename ) );
}
ScriptApp.newTrigger(" MyFunction的&#34)。forSpreadsheet(newspread).onEdit()创建();
SpreadsheetApp.flush(); }
答案 1 :(得分:0)
问题是forSpreadsheet()接受电子表格ID作为参数,并且您发送文件,从代码中删除SpreadsheetApp.openById(
,它应该没问题:
var newspread = newfile.getId();