我一直在寻找脚本和东西来查找但是,似乎google api已经被改变了太多,或者我很笨,并且不知道如何执行旧脚本并使它们工作。
我不断收到这些错误解析错误... Yahoew这对很多有帮助。不知道是哪一行。所以我自己做了。
function amountOfColors(color, range){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var orgColor = ss.getRange(color).getBackground();
var range = ss.getRange(range);
var x = 0;
Logger.log("I was here before the loop.");
for (var i; i < range.getNumRows(); i++) {
Logger.log("Entered Row loop");
for (var j; j < range.getNumColumns(); j++) {
Logger.log("Entered Columns loop");
var curCell = range.getCell(i, j);
Logger.log("curCell is : " & curCell);
if(curCell.getBackground() == orgColor) {
Logger.log("curCell color is : " & curCell.getBackground());
x++;
}
}
}
Logger.log("END");
return x;
};
正如你所看到的,我几乎把它记录下来。但是这是它在日志文件中返回的内容:
[14-02-20 04:00:53:445 CET] I was here before the loop.
[14-02-20 04:00:53:445 CET] END
甚至没有触摸我的循环?
我希望这个脚本的所有内容是从原始位置获取颜色,然后找到有多少个单元格具有该颜色并将其返回。非常简单的脚本。
希望有人可以在这一点上启发我。我试图从脚本库中安装类似的脚本,但它们也会返回错误。
以下是设置图片:
http://b.imgdrp.com/PCoT.PNG - 我意识到它说B33:B35,但即使使用A它也不起作用。
答案 0 :(得分:0)
添加我自己的答案以防有人遇到类似的问题。
function amountOfColors(color, range){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0]
var orgColor = sheet.getRange(color).getBackground();
var range = sheet.getRange(range);
var x = 0;
for (var i = 1; i <= range.getNumRows(); i++) {
for (var j = 1; j <= range.getNumColumns(); j++) {
var curCellColor = range.getCell(i,j).getBackground();
if(curCellColor == orgColor)
x++;
}
}
return x;
};
除此之外,我改变了调用函数的方式:
而不是:
=amountOfColors("A35", "A33:A35")
你需要使用:
=amountOfColors("A35"; "A33:A35")
你可以看到分号而不是逗号。
我很抱歉发布和修复它,似乎我所需要的只是额外一小时才能变得狡猾。至少希望有人可以从中获得一些东西。 如果对代码有任何疑问可以随意添加评论,我会尝试解释。 最诚挚的问候Qvintus。