用于计数彩色细胞的自定义脚本很慢

时间:2019-03-14 16:19:07

标签: java google-sheets scripting

我创建了一个电子表格,该电子表格使用条件格式对单元格进行了阴影处理,然后我想对这些单元格进行计数并创建一个百分比。到目前为止,我已经能够使脚本工作,并且计算是正确的,但是脚本/工作表比我想要的要慢。

我在编程时很陌生,不知道如何查看代码是否经过优化。

这是我要计算单元格数量的脚本,该脚本是我在此站点上找到的:

function countColoredCells(countRange,colorRef) {
  var activeRg = SpreadsheetApp.getActiveRange();
  var activeSht = SpreadsheetApp.getActiveSheet();
  var activeformula = activeRg.getFormula();
  var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim();
  var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
  var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim();
  var BackGround = activeSht.getRange(colorRefAddress).getBackground();
  var countCells = 0;
  for (var i = 0; i < backGrounds.length; i++)
    for (var k = 0; k < backGrounds[i].length; k++)
      if ( backGrounds[i][k] == BackGround )
        countCells = countCells + 1;
  return countCells;
};

以及正在运行的工作表。

https://docs.google.com/spreadsheets/d/1uJJQeF42c0TCQe5_Awztp74YmpS3PaFuAg0DEfLHCGc/edit?usp=sharing

请帮助。

0 个答案:

没有答案