您好我已经阅读了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()。
答案 0 :(得分:2)
可能是因为在第一个函数中你会直接传递cellreference,
=doob(A1)
并在脚本中使用该单元格的值。 在第二种情况下,您可能必须将范围作为字符串传递(因为您想要获取背景颜色,所以您不是在该范围的值之后,对吗?)
=doob("A1:B8")
如您所知,自定义函数会受到备忘录的影响。要解决这个问题,你可以再次传入范围,不带引号。
=doob("A1:B8", A1:B8)
第二个参数是一个虚拟的' paramater因为脚本对它没有任何作用。但是:该范围内值的任何变化都应该使自定义函数重新评估。但是,如果您的最终目标是获得背景颜色,我不知道这对您是否会有很大帮助。