根据以下值更改单元格颜色

时间:2012-08-15 13:20:23

标签: google-apps-script google-sheets

我一直在寻找一种方法,根据Google电子表格中下方单元格的值更改单元格的颜色。

A1:F1范围内的每个单元格需要更改颜色,如果下面的直接单元格的值>或者<或=到0。

所以A1始终会看A2B1会一直关注B2,依此类推。在我的表中,我可能需要一个值低于它的随机单元格范围,改变颜色。我也想使用命名范围,因为这永远不会改变。

我很乐意提供代码示例,但问题是我甚至不知道在函数onEdit()之后从哪里开始并设置我认为变量应该是什么。

function onEdit(){
  var e = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = e.getActiveSheet().getName('Basic');
  var items = e.getRangeByName('avgt1v1name').getValues();
  var values = e.getRangeByName('avg1t1b').getValues();

我不知道我是否应该使用IF语句或者使用FOR或WHILE进行循环。

非常感谢您的帮助。

提前致谢。 MoExius

1 个答案:

答案 0 :(得分:0)

我的猜测......

function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Basic');
  var values = ss.getRangeByName('avg1t1b').getValues();

  var nameRange = ss.getRangeByName('avgt1v1name');
  var rowIndex = nameRange.getRowIndex();

  for (var i = 0; i <= values[0].length -1; i++) {
    var col = i + 1;
    var cell = values[0][i];
    if (cell != '' && (cell <= 0 || cell > 0) ) {
      nameRange.getCell(rowIndex, col ).setBackgroundColor('red');
      }
    else {nameRange.getCell(rowIndex, col ).setBackgroundColor('white');}
  }
};

由于某种原因,当数字零位于电子表格中时不起作用。 Spreadsheet