【问题标题】:Is there a way to freeze TODAY for when it was written to a cell in Google Sheets?有没有办法在今天将其写入 Google 表格中的单元格时冻结它?
【发布时间】:2025-12-09 21:30:01
【问题描述】:

使用today(),当相邻单元格被填充时,我有一个单元格填充当前日期。不幸的是,当明天到来时,昨天的日期,从明天的角度来看,将是错误的日期。

有没有办法将today() 冻结为写入日期而不是当前日期?

注意:有数千个这样的单元格,所以 Cmd + ; 并不能解决这个问题。它需要是一个可以复制到数千个单元格的公式。

【问题讨论】:

  • 不,你需要使用 google-script 编写代码来做你想做的事。公式是“活的”。

标签: google-apps-script google-sheets timestamp


【解决方案1】:

仅适用于脚本:

function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet3" ) { 
var r = s.getActiveCell();
if( r.getColumn() == 13 ) { 
  var nextCell = r.offset(0, 9);
  var newDate = Utilities.formatDate(new Date(), 
  "GMT+8", "MM/dd/yyyy hh:mm:ss");
  nextCell.setValue(newDate);
}}}
  • "Sheet3" = 工作表名称
  • r.getColumn() == 13 = M 列/第 13 列
  • r.offset(0, 9) = 在同一行的右侧偏移时间戳 9 列,例如列 V
  • "GMT+8" = 时区
  • "MM/dd/yyyy hh:mm:ss" = 日期和时间格式

【讨论】:

    最近更新 更多