感谢this answer Shyam Kansagra,我修改了以下代码以检查Google表格单元格背景颜色,并根据该颜色更改不同单元格的值。
我很接近,但目前getRange
仅检查第6列。我希望它检查第6,7,8,9,10列,如果该行中的任何单元格为红色,则写入&#34 ;红色"在获得BG颜色时,我认为bg = sheet1.getRange(i+2, 6, 10, 5).getBackground();
会检查所有5列,但目前只检查第6列。
以下是完整代码:
function myFunction() {
var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Compliance Main");
var data1 = sheet1.getDataRange().getValues(); //2D array of sheet1 cell values
var bg;
for(var i=0; i<data1.length; i++)
{
bg = sheet1.getRange(i+2, 6, 6, 5).getBackground();
if(bg == "#ff0000") //Add more colors in else if and else if
{
sheet1.getRange(i+2, 11).setValue("Red"); //Set value in corresponding row
} else if(bg == "#ffff00")
{
sheet1.getRange(i+2, 11).setValue("Yellow");
} else if(bg == "#ffffff")
{
sheet1.getRange(i+2, 11).setValue("White");
}
}
}
为了更加清晰,以下是错误工作表的屏幕截图: - 如您所见,我希望它引用整组列,但它只引用第6列。
如果这些编辑很粗糙,我很抱歉,我是js的初学者。感谢您提供的任何帮助!