如何同时忽略for循环中的空白和非布兰克值



我有一个脚本,当" x"列不是空白时,列列y列。我正在尝试添加一种偶然性,如果脚本缺少时间戳,则只会使脚本"列"列。当前,脚本将覆盖现有的时间戳。

function markComplete() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Sheet1');
  var startingRow = 2;
  var maxRow = s.getLastRow();
  var data = s.getRange(startingRow, 1, maxRow, 29).getValues();
  var dateSent = new Date();
  for (var i = 0; i < data.length; ++i) {
   var row = data[i];
   var employee = row[23];
   var timestamp = row[29];

  if (employee != '') {
    s.getRange(i+2,29).setValue(dateSent);
    }
  }
  }

我尝试将if语句修改为if (employee != '' && timestamp == ''),但这只是导致脚本什么都不做。

尝试以下:

我对此进行了测试,它不会超过编写旧时间戳。

function runOne() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet1');
  var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
  var vA=rg.getValues();
  for (var i=0;i<vA.length;i++) {
    if(vA[i][23] && !vA[i][28]) {//columns x and y
      sh.getRange(i+2,29).setValue(Utilities.formatDate(new Date(),Session.getScriptTimeZone(), "E MMM dd, yyyy HH:mm:ss"));//column y
    }
  }
}

最新更新