Google apps script 一换不开

Google apps script 一换不开,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我显然是做错了,因为世界上似乎没有人以前有过这个问题 我想在工作表末尾插入行时运行Google Apps脚本。我知道我需要使用onChange来实现这一点,所以我就是这么做的: 设置触发更改时应运行的脚本: function copyDownFormula(e) { Logger.log('something'); } 然后,我在触发器中将onChange触发器设置为: 然后我安装了以下代码,以便在使用onOpen触发器打开工作表时安装onChange触发器: ScriptApp.ne

我显然是做错了,因为世界上似乎没有人以前有过这个问题

我想在工作表末尾插入行时运行Google Apps脚本。我知道我需要使用onChange来实现这一点,所以我就是这么做的:

设置触发更改时应运行的脚本:

function copyDownFormula(e) 
{
Logger.log('something');
}
然后,我在触发器中将onChange触发器设置为:

然后我安装了以下代码,以便在使用onOpen触发器打开工作表时安装onChange触发器:

  ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
但是由于某种原因,当我向工作表中添加行时,什么也没有发生。我查看了日志,它们是空的。我错过什么了吗?

一旦改变又开始了 也许是这样:

ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
ScriptApp.newTrigger('copyDownFormula').forSpreadsheet(ss).onChange().create(); 
function copyDownFormula(e)
{

  Logger.log('ChangeType:%s Row:%s',e.changeType,SpreadsheetApp.getActiveSheet().getActiveRange().getRow()); 

}
应该是这样的:

ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
ScriptApp.newTrigger('copyDownFormula').forSpreadsheet(ss).onChange().create(); 
function copyDownFormula(e)
{

  Logger.log('ChangeType:%s Row:%s',e.changeType,SpreadsheetApp.getActiveSheet().getActiveRange().getRow()); 

}

试试这个:

ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
ScriptApp.newTrigger('copyDownFormula').forSpreadsheet(ss).onChange().create(); 
function copyDownFormula(e)
{

  Logger.log('ChangeType:%s Row:%s',e.changeType,SpreadsheetApp.getActiveSheet().getActiveRange().getRow()); 

}
在“编辑”菜单中的当前项目触发器中设置触发器。它起作用了

或者如果您愿意:

ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
ScriptApp.newTrigger('copyDownFormula').forSpreadsheet(ss).onChange().create(); 
function copyDownFormula(e)
{

  Logger.log('ChangeType:%s Row:%s',e.changeType,SpreadsheetApp.getActiveSheet().getActiveRange().getRow()); 

}
您可以使用以下命令:

function triggerSetup()
{
    ScriptApp.newTrigger('copyDownFormula').forSpreadsheet('SpreadsheetId').onChange().create();
}
onChange又开始开火了 也许是这样:

ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
ScriptApp.newTrigger('copyDownFormula').forSpreadsheet(ss).onChange().create(); 
function copyDownFormula(e)
{

  Logger.log('ChangeType:%s Row:%s',e.changeType,SpreadsheetApp.getActiveSheet().getActiveRange().getRow()); 

}
应该是这样的:

ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
ScriptApp.newTrigger('copyDownFormula').forSpreadsheet(ss).onChange().create(); 
function copyDownFormula(e)
{

  Logger.log('ChangeType:%s Row:%s',e.changeType,SpreadsheetApp.getActiveSheet().getActiveRange().getRow()); 

}

试试这个:

ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
ScriptApp.newTrigger('copyDownFormula').forSpreadsheet(ss).onChange().create(); 
function copyDownFormula(e)
{

  Logger.log('ChangeType:%s Row:%s',e.changeType,SpreadsheetApp.getActiveSheet().getActiveRange().getRow()); 

}
在“编辑”菜单中的当前项目触发器中设置触发器。它起作用了

或者如果您愿意:

ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
ScriptApp.newTrigger('copyDownFormula').forSpreadsheet(ss).onChange().create(); 
function copyDownFormula(e)
{

  Logger.log('ChangeType:%s Row:%s',e.changeType,SpreadsheetApp.getActiveSheet().getActiveRange().getRow()); 

}
您可以使用以下命令:

function triggerSetup()
{
    ScriptApp.newTrigger('copyDownFormula').forSpreadsheet('SpreadsheetId').onChange().create();
}

谢谢你,库珀。现在有一个不同的问题:[17-11-09 22:51:08:711 PST]执行失败:您没有权限调用newTrigger(第7行,文件“runOnOpen”)[0.101秒总运行时间]似乎我无法从onOpen运行触发器安装程序。我希望避免手动批准触发器,因为有其他用户使用该表。有什么想法吗?这很奇怪,因为我在一辆onOpenThanks Cooper的车里运行了nscriptap.newTrigger。现在有一个不同的问题:[17-11-09 22:51:08:711 PST]执行失败:您没有权限调用newTrigger(第7行,文件“runOnOpen”)[0.101秒总运行时间]似乎我无法从onOpen运行触发器安装程序。我希望避免手动批准触发器,因为有其他用户使用该表。有什么想法吗?这很奇怪,因为我在一个onOpen里面运行了nscriptap.newTrigger