在列的第一个空单元格中设置时间戳

时间:2013-11-26 01:38:42

标签: google-apps-script google-sheets

我无法在任何地方找到它。我猜我正在寻找错误的关键词。到目前为止,我已经能够使用:

    function getFirst() {
    var spr = SpreadsheetApp.getActiveSpreadsheet();
    var column = spr.getRange('F2:F260');
    var values = column.getValues(); // get all data in one call
    var ct = 0;
    while ( values[ct][0] != "" ) {
    ct++;
    }
     return (ct);
    }

但我无法弄清楚如何将返回值设置为(new Date())。 这样:

    function clockOut() {
    SpreadsheetApp.getActiveSheet().getRange('F2').setValue(getFirst(new Date));
    }

设置基于ct的时间,因为它为零,看起来像:| 12/31/1899 0:00:00 |。也在F2点不在ct点。我觉得我很接近但感觉我走错了方向。感谢

1 个答案:

答案 0 :(得分:0)

你在第一部分并不是太远......之后它变得有点混乱......这是一个有效的例子,我改变它以便在选择列时轻松定制。

function clockOut() {
  var sh = SpreadsheetApp.getActiveSheet();
  var col = "F";// choose the column you want
  sh.getRange(col+getFirstEmptyCell(col)).setValue(new Date());
}

function getFirstEmptyCell(col) {
  var sh = SpreadsheetApp.getActiveSheet();
  var values = sh.getRange(col+"1:"+col).getValues()
  var ct = 0;
  while ( values[ct][0] != "" ) {
    ct++;
  }
  ct++;// because we want to get the row after the last non-empty row
  Logger.log(ct);// just to check
  return (ct);
}