不允许从一个Google电子表格访问

时间:2013-10-15 13:30:24

标签: google-apps-script google-sheets

我尝试从其他电子表格中的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);
  }
}

2 个答案:

答案 0 :(得分:5)

您可以修复您的代码: 1)不要从触发器调用msgBox或任何模态。打破很多东西。 2)您无法从简单触发器访问其他文档,而且它以用户身份运行,因此您可能没有其他内容的权限。而是使用不同的名称(而不是onEdit)自行安装触发器,并将其设置为在编辑文档时触发。

答案 1 :(得分:0)

查看文档Understanding Triggers,特别是对简单触发器的限制:

 ...
     
      
  • 他们只能修改包含的文档。禁止访问其他文档。
  •