自动时间戳有助于Google脚本

时间:2018-01-18 15:00:39

标签: javascript google-apps-script

我在使用帮助台教程后开始使用Google脚本来帮助自动化一些事情,但现在我想更进一步,只要在状态"状态下添加时间戳。从以前的状态翻转到"已完成"。

function ClosureTimeStamp(){
var sheet= SpreadsheetApp.getActiveSheet();
var active=sheet.getActiveCell()
var date= new Date();
var status= active.getValue();
if(status = "Completed") {(getColIndexByName("Last Status Update")).setValue(date);}
}

这实际上是我写的第一个函数,肯定会有一些非常基本和明显的错误。我想要它,所以当有人翻转状态为“已完成最后状态更新”列时,该行将按时间戳删除。

我已经使用了GetLastRow,但它并没有完全按照我的意愿行事(正在更新最后一行,而不是相应的行被翻转状态)。

function getColIndexByName(colName) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var numColumns = sheet.getLastColumn();
  var row = sheet.getRange(1, 1, 1, numColumns).getValues();
  for (i in row[0]) {
    var name = row[0][i];
    if (name == colName) {
      return parseInt(i) + 1;
    }
  }
  return -1;

1 个答案:

答案 0 :(得分:0)

试试这个:

function ClosureTimeStamp(){
  var sheet= SpreadsheetApp.getActiveSheet();
  var active=sheet.getActiveCell();
  var date=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm:ss");
  var status= active.getValue();
  if(status == "Completed"){
    sheet.getRange(active.getRowIndex(),getColIndexByName("Last Status Update")).setValue(date);
  }
}