我知道Google Docs Spreadsheets目前在比较两个单元格时不支持条件格式。
如果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
,我会在脚本中将其变为红色。
答案 0 :(得分:0)
这是一个你可以使用的好例子。 https://webapps.stackexchange.com/questions/45937/conditional-formatting-using-other-cells-in-google-docs
听起来你需要将代码包装在一个函数名中,添加一个新的触发器,其中'Run'设置为,并且Events设置为'From spreadsheet''On edit。'
编辑:
这是避免使用触发器的另一个示例: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();
}
答案 1 :(得分:0)
目前不需要脚本:
选择E3到要格式化的范围的末尾(例如E3:E99)和格式,条件格式化......,格式化单元格,如果...... greater than
和
=B3
红色填充。使用Less than or equal to
和
=B3
绿色填充和完成。
答案 2 :(得分:-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”语句中将单元格变为“红色”。