所以我有一个代码,它接受一个范围和一个引用单元格,并返回与ref具有相同背景颜色的单元格数量。这很好用,但是当一些单元格的颜色发生变化时,我希望它可用。我把它放在每分钟基于时间的触发器上,我尝试使用SpreadsheetApp.flush()
来解除当前的数字。这没有产生预期的效果。
我还尝试使用flush()创建第二个函数,然后返回第一个函数。这也行不通。我知道刷新它的唯一方法是采用" =
"从具有函数的单元格的开头,然后替换它。有效的代码如下。
function countBGColor(range, ref) {
var sheet = SpreadsheetApp.getActiveSheet();
var color = sheet.getRange(ref).getBackground();
var range = sheet.getRange(range);
var rangeVal = range.getValues();
var count = 0;
var allColors = range.getBackgrounds();
for (var i = 0; i < allColors.length; i++) {
for (var j = 0; j < allColors[0].length; j++) {
if (allColors[i][j] == color) count += 1;
};
};
return count;
}
答案 0 :(得分:2)
我无法找到直接的方法来做到这一点。但你可以制作清除公式的脚本,然后将其重新输入到单元格中:
function Refresh() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange('D1');
range.clear();
SpreadsheetApp.flush();
range.setFormula('=countBGColor("A1:A10","E1")');
}
接下来将您的图片链接到脚本的功能:图片右上角的Insert > image >