10

我想設置一些值在谷歌文檔電子表格中的單元格。谷歌腳本setValue權限

function exampleFunction() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var range1 = sheet.getRange("A1"); 
    var value1 = range1.getValue(); 
    value1+=1; 
    range1.setValue(2); 
    return value1; 
} 

如果我試圖影響這個功能出現此錯誤的單元:

您沒有要求給setValue的權限。 (第10行,文件 「ddd」)

你知道我該如何做到這一點嗎?我實際上希望受影響的單元格取得單元格A1的值並增加A1 +1的值。

謝謝

+0

什麼是'range1.setValue(2);'應該做的?你是否試圖在A1中加1,並把結果放在其他地方,或者你是否試圖通過加1來改變單元格A1?您是否使用自定義函數來調用它,即=單元格中的exampleFunction()?不明白。 – ScampMichael 2013-04-10 21:01:23

+1

我同意邁克爾,目前還不清楚......我在回答中假定這個函數被用作自定義函數,因爲將它作爲自定義函數進行測試時得到的錯誤信息正是「您沒有權限調用setValue()...「另外:這個問題說:」受影響的單元格「我想這意味着」我放置函數的單元格「? – 2013-04-10 21:32:51

回答

15

從文檔:

自定義函數返回值,但不能設置它們在細胞外的值在大多數情況下,在A1單元格的自定義函數不能修改單元格A5。 。但是,如果自定義函數返回雙數組,則結果會溢出包含該函數的單元格,並填充包含自定義函數的單元格的右下方的單元格。你可以用包含return [[1,2],[3,4]];的自定義函數來測試它。

參考:Custom Functions in Spreadsheets

+14

那麼,.setValue()方法的目的是什麼?這沒有意義。 – 2014-07-31 16:36:10

+1

自定義函數只是一個小的氣體使用案例 – 2014-07-31 16:39:01

+0

那麼您還可以使用Google腳本中的函數以外的其他函數嗎? – 2014-07-31 16:42:50

1

它看起來您正在使用上述功能的自定義功能,換句話說,它是通過在谷歌表UI單元格公式調用,以下列方式:

=exampleFunction() 

Custom functions in Google Sheets有侷限性,因此無法用於調用需要權限的Google Apps腳本服務。解決方法是使用另一種意思是調用該函數:從谷歌Apps腳本編輯器

  • 使用custom menu
  • 此外,他們可以從所謂的dialogs and sidebars, Google Apps Script Web apps並使用Google Apps Script execution API