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