0

行内の他のセルの内容に応じてセルの色を変更するスクリプトを作成しようとしています。

基本的に、エントリの日付 (col 1) が 2 日以上前で、そのセルの数が 1 未満の場合、セル (col 6) を赤に変更したいと思います。しかし、3 番目の列 (col 5 ) が Y に変わり、セルが緑色で書式設定されます。

null を返す 5 行目の getRange に問題がありますが、これを正しく行っているかどうかを確認したかったのです。ありがとう!

function formatting() {
  var now  = new Date().getTime();
  var twoDaysInMilliseconds = 172800000;

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Enquiry Tracking');
  var columnBooked = sheet.getRange(2, 5, sheet.getLastRow()-1, 1);
  var bValues = columnBooked.getValues();

  for (var i = 0; i < bValues.length; i++) {
    var columnFU = sheet.getRange(i + 2, 6, 1, 1);
    if (bValues[i][0] != 'y')  {
      var rowdate = new Date(sheet.getRange(i + 2, 1, 1, 1).getValue()).getTime();

      if (now - rowdate > twoDaysInMilliseconds) AND (columnFU.getValue() < 1)
      { 
         columnFU.setBackgroundColor('red');
      }

    }
    else {
      columnFU.setBackgroundColor('green');
    }
  }
}
4

1 に答える 1