Google文档会自定义功能刷新

时间:2016-02-08 02:14:36

标签: google-sheets spreadsheet

所以我有一个代码,它接受一个范围和一个引用单元格,并返回与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;
}

1 个答案:

答案 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 >

Sample file

enter image description here