3

我试图弄清楚如何在 Google 电子表格上执行以下操作:将字母“x”放在 A 列第 2 行(标有“状态”的列)中,并自动将第 2 行的背景颜色更改为 RGB(244, 204、204)。我希望整个电子表格的每一行都如此。

谢谢你的帮助!

4

3 回答 3

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”。

于 2013-09-07T09:02:12.403 回答
0

使用 onEdit() 触发器,您可以使用此代码

function onEdit(e) {
    if (e.range.getColumn() ==1){
      e.range.setBackgroundRGB(244, 204, 204);
    }
}
于 2013-05-03T19:44:54.587 回答
-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 //
  }
};
于 2014-03-13T15:54:25.027 回答