电子表格:https://docs.google.com/spreadsheets/d/1Gw_inIKmUZge13v6Q04FJF7GLovv1reHGvVCcL7GvO0/edit?usp=sharing
脚本文件:
function doGet(e){
return HtmlService.createHtmlOutputFromFile("RunTimeStamp");
}
function userClicked(e){
onEdit(e);
}
function onEdit(e) {
novemberStart(e);
novemberEnd(e);
novemberWalletStart(e);
novemberWalletEnd(e);
decemberStart(e);
decemberEnd(e);
decemberWalletStart(e);
decemberWalletEnd(e);
}
function runTimeStampScript(){
google.script.run.userClicked(e);
}
问题:
为什么其他用户无法成功运行上面的脚本?我是 Google Apps 脚本的新手,每当编辑单元格时,我都会尝试更新 Google SpreadSheet 中的时间戳。它对我来说效果很好。但是,当我使用另一个具有编辑器访问权限的 Google 帐户打开电子表格,通过转到上面的 URL 单击 Web 应用程序触发器,并编辑脚本检查的列中的单元格时,时间戳不会显示更新。
顺便说一句,我没有收到“您无权执行此操作”错误。当我尝试通过另一个 Google 帐户(模仿“其他用户”)使用它时,它不起作用。
我在这里阅读了类似的问题并尝试了他们的解决方案,但我只是不知道如何在我的电子表格中成功实现它们。
您的 onEdit 将自行运行:
function onEdit(e) {
novemberStart(e);
novemberEnd(e);
novemberWalletStart(e);
novemberWalletEnd(e);
decemberStart(e);
decemberEnd(e);
decemberWalletStart(e);
decemberWalletEnd(e);
}
通过 userClicked(e) 调用 onedit 永远不会起作用,因为 userClicked 中的 e 没有填充事件对象,所以我想它每次都会失败,您可以使用执行日志进行检查。当然,我不知道你在 onEdit 中做什么,因为函数没有定义。