谷歌工作表中的时间戳每天都在更新



我在Google表格中创建了以下脚本来制作时间戳,并且可以很好地反映日期

function TIMESTAMP() {
var today = new Date();
var date = (today.getMonth()+1)+'-'+today.getDate()+'- 
'+today.getFullYear();
var dateTime = date
return dateTime;
}

在我希望它反映的工作表中:

=if(K2="Done",TIMESTAMP())

然后主要问题是,当我今天打开工作表时,它在我使用它们的单元格中反映了今天的日期而不是昨天的日期。

尝试创建时间戳 尝试正常使用今天或现在的功能,但他们做了同样的事情 尝试使用快捷键 CTRL +;但这应该手动完成,我不希望这个 尝试将源作为宏,但不知道如何在此 IF 语句中应用它=if(K2="Done",TIMESTAMP())

我希望找到解决此问题的方法,因为这是针对任务表的,我enter code here创建它以使团队从列表中选择完成单词以直接反映旁边的单元格中完成的日期

创建一个脚本,该脚本将在每次将单元格标记为完成时自动插入时间戳,而不是手动运行脚本。

这是你可以做到的:

function onEdit(e) {
var column=e.range.getColumn();
//check if a cell content in column K was set to "Done"
if(column==11&&e.value=="Done"){
var today = new Date();
var date = (today.getMonth()+1)+'-'+today.getDate()+'-'+today.getFullYear();
var dateTime = date;
var row=e.range.getRow();
//specify the column of your choice
var timeStampColumn=12;
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(row, timeStampColumn).setValue(dateTime);
}
}

保存代码并尝试运行一次以启动身份验证流。您将收到错误消息TypeError: Cannot read property "range" from undefined因为带有事件对象的 onEdit 功能无法手动运行,但您的代码将从那时开始自动运行 - 每次对列 K 进行编辑时。

引用:

  • onEdit 触发器
  • 事件对象
  • 设置值((

最新更新