2013-10-15 149 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

爐排!它的工作完美!謝謝!!! –

相關問題