我正在使用日历电子表格。本文档使用背景颜色来指定不同的事件。例如会议是蓝色的,庭院是红色的。
我正在尝试创建一个(sum if bg color)方法,该方法查看谷歌电子表格中的给定范围,计算具有特定背景颜色的单元格,为每个块分配权重(即 30 分钟)并返回时间量在该背景颜色的活动/周上花费。
我的基本问题是我的参数是未定义的(即使它们是范围),并且不能对未定义的对象类型调用范围方法。
这是代码:
//this function sums cells of a given color having assigned each cell a given value.
//it inspects a range and compares each cell's background color to a given background color
//returns given title and calculated sum
function sumifcolor(theRangeToInspect, valueOfCellInRangeToInspect, colorAndTitleCell) {
var doc = SpreadsheetApp.getActiveSheet();
var color = colorAndTitleCell.getBackgroundColor(); //get color
var title = colorAndTitleCell.getInputvalueOfCellInRangeToInspect(); //get title
theRangeToInspect.activate();
var firstRow = theRangeToInspect.getRow();
var lastRow = theRangeToInspect.getLastRow();
var firstCol = theRangeToInspect.getColumn();
var lastColumn = theRangeToInspect.getLastColumn();
var result;
//for loops iterate through every cell in a row
for (var yy=firstRow; xx<=lastRow; xx++) {
for (var xx=firstCol; yy<=lastCol; yy++) {
if (doc.getRange(xx,yy).getBackgroundColor() = color) {result += valueOfCellInRangeToInspect}
};
};
return title + ": " + result;
};