2013-10-15 146 views
1

我试图在其他电子表格的onEdit事件中为我的Google电子表格设置新值。我得到例外:不允许采取行动。我不明白我究竟做了什么不对。我很乐意为您提供帮助,因为我只是在JS + Google Docs脚本中执行第一步。不允许从一个电子表格访问其他Google电子表格

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); 
    } 
} 

回答

0

检查文档Understanding Triggers,具体而言,在简单的触发器限制:

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

谢谢 - 你对! –

5

您可以修复你的代码: 1)不要叫MSGBOX或触发任何情态动词。打破许多事情。 2)你不能从简单的触发器访问其他文档,再加上它作为用户运行,所以你可能没有其他事情的权限。相反,使用不同的名称(而不是onEdit)自己安装触发器,并将其设置为在编辑文档时触发。

+0

炉排!它的工作完美!谢谢!!! –

相关问题