Google表格自定义功能无法重新计算

时间:2015-07-23 16:57:12

标签: google-apps-script google-sheets

您好我已经阅读了Google表格中自定义功能的缓存问题,但我想了解为什么如果更改单元格,以下内容会成功更新:

function doob(input){
 return input * 2;
}

但这不会更新:

function doob(input){
 var sheet = SpreadsheetApp.getActiveSpreadsheet();
 var range = sheet.getRange(input);
 var values = range.getValues();
 return values[0][0] * 2 ; 
}

我需要获取范围才能使用每个单元格的.getBackgroundColor()。

1 个答案:

答案 0 :(得分:2)

可能是因为在第一个函数中你会直接传递cellreference,

=doob(A1)

并在脚本中使用该单元格的值。 在第二种情况下,您可能必须将范围作为字符串传递(因为您想要获取背景颜色,所以您不是在该范围的值之后,对吗?)

=doob("A1:B8")

如您所知,自定义函数会受到备忘录的影响。要解决这个问题,你可以再次传入范围,不带引号。

=doob("A1:B8", A1:B8)

第二个参数是一个虚拟的' paramater因为脚本对它没有任何作用。但是:该范围内值的任何变化都应该使自定义函数重新评估。但是,如果您的最终目标是获得背景颜色,我不知道这对您是否会有很大帮助。