Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script GoogleSheets:我如何编写一个基于颜色计算单元格数量的自定义公式?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script GoogleSheets:我如何编写一个基于颜色计算单元格数量的自定义公式?

Google apps script GoogleSheets:我如何编写一个基于颜色计算单元格数量的自定义公式?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我目前在网上找到了以下代码,但是我得到了一个错误“TypeError:无法读取null的属性'pop'(第6行,文件“code”)” 我希望能够创建一个自定义公式,然后可以像常规公式一样使用它来链接和引用单元格。此代码的其他版本将单元格引用作为静态硬代码,因此我想使用此版本。任何帮助都是非常感谢的-我是新手,所以我可能错过了一些非常明显的东西 函数countColoredCells(countRange,colorRef){ var activeRange=SpreadsheetApp.get

我目前在网上找到了以下代码,但是我得到了一个错误“TypeError:无法读取null的属性'pop'(第6行,文件“code”)”

我希望能够创建一个自定义公式,然后可以像常规公式一样使用它来链接和引用单元格。此代码的其他版本将单元格引用作为静态硬代码,因此我想使用此版本。任何帮助都是非常感谢的-我是新手,所以我可能错过了一些非常明显的东西

函数countColoredCells(countRange,colorRef){
var activeRange=SpreadsheetApp.getActiveRange();
var activeSheet=activeRange.getSheet();
var formula=activeRange.getFormula();
var rangeA1Notation=formula.match(/\(.*)\,/).pop();
var range=activeSheet.getRange(rangeA1Notation);
var bg=range.getBackgrounds();
var values=range.getValues();
var colorCellA1Notation=formula.match(/\,(.*)\)/).pop();
var colorCell=activeSheet.getRange(colorcella1表示法);
var color=colorCell.getBackground();
var计数=0;

对于(var i=0;i计算活动范围的背景色

function countBGColors() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getActiveRange();
  var bA=rg.getBackgrounds();
  var color={cA:[]};
  for(var i=0;i<bA.length;i++) {
    for(var j=0;j<bA[i].length;j++) {
      if(!color.hasOwnProperty(bA[i][j])) {
        color[bA[i][j]]=1;
        color.cA.push(bA[i][j]);
      }else{
        color[bA[i][j]]+=1;
      }
    }
  }
  sh.getRange(1,1,1,50).setBackground('#ffffff');
  sh.getRange(1,1,1,50).setValue('');
  sh.getRange(1,1,1,color.cA.length).setBackgrounds([color.cA]);
  for(var i=0;i<color.cA.length;i++) {                                             
    sh.getRange(1,i+1).setValue(color[color.cA[i]])
  }
}
函数countBGColors(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getActiveRange();
var bA=rg.getBackgrounds();
var color={cA:[]};
对于(var i=0;i