0

我知道在比较两个单元格时,Google Docs 电子表格目前不支持条件格式。

如果B3 >= E3,则E3背景为绿色,但如果B3 < E3,则E3背景为红色

取而代之的是使用 JavaScript 解决方案。

我是脚本新手,找不到but.

我发现了这个,它将执行格式化的第一部分。

var value1Rule1 = s.getRange('b3').getValue();
var value2Rule1 = s.getRange('e3').getValue();
var range3Rule1 = s.getRange('e3');
var color1 = 'green';

if (value1Rule1 >= value2Rule1) range3Rule1.setBackgroundColor(color1);
else range3Rule1.setBackgroundColor('white');

但我不知道我会在脚本中放在哪里,如果value1 is < value2.

4

3 回答 3

0

这是您可以使用的一个很好的例子。https://webapps.stackexchange.com/questions/45937/conditional-formatting-using-other-cells-in-google-docs

听起来您需要将代码包装在函数名称中,添加一个新触发器,其中“运行”设置为,事件设置为“来自电子表格”“编辑时”。

编辑:

这是另一个避免使用触发器的示例:https ://webapps.stackexchange.com/questions/16745/google-spreadsheets-conditional-formatting-based-on-another-cells-content?rq=1

function colorAll() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;
  var endRow = sheet.getLastRow();

  for (var r = startRow; r <= endRow; r++) {
    colorRow(r);
  }
}

function colorRow(r){
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getRange(r, 1, 1, 3);

  var data = dataRange.getValues();
  var row = data[0];

  if(row[0] === ""){
    dataRange.setBackgroundRGB(255, 255, 255);
  }else if(row[0] > 0){
    dataRange.setBackgroundRGB(192, 255, 192);
  }else{
    dataRange.setBackgroundRGB(255, 192, 192);
  }

  SpreadsheetApp.flush(); 
}

function onEdit(event)
{
  var r = event.source.getActiveRange().getRowIndex();
  if (r >= 2) {
    colorRow(r);
  }
}

function onOpen(){
  colorAll();
}
​
于 2013-09-20T22:09:23.947 回答
0

目前不需要脚本:

选择 E3 到要格式化的范围的末尾(例如 E3:E99)和 Format、Conditional formatting...、Format cells if...greater than

=B3

用红色填充。Less than or equal to使用and添加另一个规则(相同范围)

=B3 

用绿色填充和Done.

于 2017-04-23T20:28:35.357 回答
-1

尝试这个

var value1Rule1 = s.getRange('b3').getValue();
var value2Rule1 = s.getRange('e3').getValue();
var range3Rule1 = s.getRange('e3');
var color1 = 'green';

if (value1Rule1 >= value2Rule1) range3Rule1.setBackgroundColor(color1);
else range3Rule1.setBackgroundColor('red');

它在“else”语句中将单元格变为“红色”。

于 2013-03-31T15:00:35.273 回答