function colorEntireRowGreenWhenDateOfEventMatchesCurrentDate() {
var data = SpreadsheetApp.getActiveSheet();
var dateColumn = data.getRange("C2:C15").getValues();
var todaysDate = new Date();
Logger.log(data)
for (i=0; i=dateColumn.length; i++) {
if (dateColumn[i] = todaysDate) {
data.setTabColor("#3c643c");
}
}
}
简单易用。当C列中的日期条目与今天的日期匹配时,我想将整行绿色着色。
答案 0 :(得分:1)
您的代码存在多个问题。
首先,你在日期比较中犯了错误
if (dateColumn[i] = todaysDate) {
而不是
if (dateColumn[i] == todaysDate) {
此外,比较日期的最佳方法是使用getTime() method比较时间。另见这个问题:Compare two dates with JavaScript
当您尝试获取Sheet.setTabColor(String) method或Range.setBackground(String) method时,您尝试使用Range.setBackgroundRGB(red, green, blue) method修改工作表的标签颜色。
这是一个解决方案:
function colorEntireRowGreenWhenDateOfEventMatchesCurrentDate() {
var data = SpreadsheetApp.getActiveSheet();
var range = data.getRange("C2:C15");
var values = range.getValues();
var today = new Date();
var todaysDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
Logger.log(data);
range.setBackground(null);
for (var i in values) {
var d = values[i][0];
if (d.getTime() === todaysDate.getTime()) {
var row = parseInt(i) + 1;
data.getRange(range.getCell(row, 1).getRow(),1,1,data.getMaxColumns()).setBackground('#3c643c');
}
}
}
答案 1 :(得分:0)
根据文档,this解释了如何为单元格设置背景颜色。您可以使用setBackground或setBackgroundRGB
答案 2 :(得分:0)
使用条件格式可以更简单地完成此操作。在A2中使用自定义公式。
=$C2:$C=today()
设置范围A2:F(将F更改为上一个数据列。