我试图通过其他电子表格中的 onEdit 事件为我的 Google 电子表格设置新值。我收到异常:不允许执行操作。我不明白我到底做错了什么。我会很高兴得到你的帮助,因为我只是在 JS + Google Docs 脚本中做第一步。
function onEdit(e) {
if (e.value == "1")
updateValue(e);
else
Browser.msgBox("Type 1 in this cell");
}
function updateValue(curRange) {
//Get needed SpreadSheet ID and Cell Index (exp:D2) from current sheet
var ssCur = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ssCur.getSheets()[0];
var referenceID = sheet.getRange(curRange.range.getRow(), curRange.range.getColumn()+2).getValue();
var cellCoordinate = sheet.getRange(curRange.range.getRow(), curRange.range.getColumn()+3).getValue();
// Here still work good and get right values
Browser.msgBox(referenceID); //tracing string
try {
//Create remote spreadsheet object - this string catching Exception
var ss = SpreadsheetApp.openById(referenceID);
//Create workbook (sheet)
Browser.msgBox(ss.getName());
var sheets = ss.getSheets();
var sheet4Update = sheets[0].getRange(cellCoordinate).setValue('1');
}
catch(err) {
Browser.msgBox(err);
}
}
您可以修复您的代码:
1) 不要从触发器中调用 msgBox 或任何模式。破坏很多东西。
2)您无法从简单的触发器访问其他文档,而且它以用户身份运行,因此您可能没有其他权限。相反,请自行使用不同的名称(而不是 onEdit)安装触发器,并将其设置为在编辑文档时触发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)