在 Google 工作表脚本中设置活动单元格的值

Set value of active cell in Google sheets script

我想创建一个公式,在某个单元格更改时创建时间戳。下面的代码就可以了。我现在想做的是通过将公式转换为纯文本来将该时间戳锚定到 sheet。

如果您手动执行此操作,您会 select 时间戳,复制它们并将它们粘贴为值。

我不想手动执行,所以我创建了下面的脚本。它试图覆盖当前的活动单元格。有人知道如何让它工作吗?

谢谢

function cvTimestamp(value) {
  var timezone = "GMT+1";
  var timestamp_format = "dd-MM-yyyy HH:mm:ss"; // Timestamp Format. 


  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];


  var date = Utilities.formatDate(new Date(), timezone, timestamp_format);

  return date

  // Returns the active cell
  var cell = sheet.getActiveCell();
  // try to write date to the active cell as a value.
  cell.setValue(date);

}

下面的脚本怎么样?当函数名是"onEdit()"时执行。并且电子表格的编辑单元格更改为 "date".

function onEdit(e){
  var row = e.range.getRow();
  var col = e.range.getColumn();
  if (row == 3 && col == 3){ // You can freely define the range for putting DATE. 
    var timezone = "GMT+1";
    var timestamp_format = "dd-MM-yyyy HH:mm:ss";
    var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
    var col = 5; // If you want to put a value to colmun 'E' of editing cell, col is 5.
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    ss.getRange(e.range.getRow(), col).setValue(date);
  }
}