我正试图弄清楚如何在Google Spreadsheets上执行以下操作: 将字母“x”放在A列第2行(标有“状态”的列)中,并自动将第2行的背景颜色更改为RGB(244,204,204)。我希望电子表格中的每一行都有这个。
感谢您的帮助!
答案 0 :(得分:3)
转到“工具>脚本编辑器”并保存并运行以下代码:
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var rows = sheet.getRange('a1:z');
var numRows = rows.getNumRows();
var values = rows.getValues();
for (var i = 0; i <= numRows - 1; i++) {
var n = i+1;
var bgColor = (values[i].indexOf('N/A') == -1) ? 'white' : 'red';
sheet.getRange('a'+n+':z'+n).setBackgroundColor(bgColor);
}
};
当任何单元格包含值“N / A”时,它基本上将行单元格的背景颜色从“A”更改为“Z”。
答案 1 :(得分:0)
使用onEdit()触发器可以使用此代码
function onEdit(e) {
if (e.range.getColumn() ==1){
e.range.setBackgroundRGB(244, 204, 204);
}
}
答案 2 :(得分:-1)
@Dan Sudhakar的响应适用于整行,只要你调整 sheet.getRange('a'+ n +':z'+ n),其中:z 到工作表的最后一列。不过,我确实需要额外的帮助。如何设置多个范围?我改变了对我有用的东西,但它只适用于现在对C列进行的调整而忽略了A.
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var rows = sheet.getRange('a1:a');
var rows = sheet.getRange('c1:c'); // ADDED THIS //
var numRows = rows.getNumRows();
var values = rows.getValues();
for (var i = 0; i <= numRows - 1; i++) {
var n = i+1;
var bgColor = (values[i].indexOf('N/A') == -1) ? 'white' : 'red';
sheet.getRange('a'+n+':b'+n).setBackgroundColor(bgColor);
sheet.getRange('c'+n+':d'+n).setBackgroundColor(bgColor); // ADDED THIS //
}
};