Checkbox 无法获取要在复选框上显示的特定于列的时间戳

Checkbox 无法获取要在复选框上显示的特定于列的时间戳,checkbox,google-apps-script,google-sheets,scripting,timestamp,Checkbox,Google Apps Script,Google Sheets,Scripting,Timestamp,我已经建立了一个谷歌员工考勤表,点击该复选框,就会记录当前时间 勾选复选框时,我无法在相应列中获得特定的时间戳 单击其他复选框也会更改以前选中复选框的时间戳 我在这里使用了这个公式:=If(B2=TRUE,now(),“”) 并使用过滤器句柄将公式应用于下面的其他行 我使用了这个公式:=If(B2=TRUE,now(),“”) 可在此处查看该表: 我想记录每一行的当前时间戳。 i、 e单击复选框时,应仅更改/记录同一行中的列的当前时间,而不更改/记录其他记录。这需要使用脚本完成: functio

我已经建立了一个谷歌员工考勤表,点击该复选框,就会记录当前时间

勾选复选框时,我无法在相应列中获得特定的时间戳

单击其他复选框也会更改以前选中复选框的时间戳

我在这里使用了这个公式:
=If(B2=TRUE,now(),“”)
并使用过滤器句柄将公式应用于下面的其他行

我使用了这个公式:
=If(B2=TRUE,now(),“”)
可在此处查看该表:

我想记录每一行的当前时间戳。
i、 e单击复选框时,应仅更改/记录同一行中的列的当前时间,而不更改/记录其他记录。

这需要使用脚本完成:

function onEdit(e) {
  var s = SpreadsheetApp.getActiveSheet();
  { 
    var r = s.getActiveCell();
    if( r.getColumn() == 2 ) { 
      var nextCell = r.offset(0, 1);
      var newDate = Utilities.formatDate(new Date(), 
      "GMT+1", "dd/MM/yyyy hh:mm:ss");
      nextCell.setValue(newDate);
   }
}

如何将脚本添加到电子表格中
  • 转到工具
  • 选择脚本编辑器

  • 复制粘贴脚本

  • 以某个名称保存项目

  • 单击运行图标并授权它

  • 选择您的帐户

  • 单击高级

  • 选择转到*(不安全)

  • 单击“允许”并返回工作表(您可以关闭脚本窗口/选项卡)


问题在于您使用的
now()
公式。每次重新计算工作表时,它都会刷新自身。我不确定如果不在复选框选中时编写代码来输入时间戳,您想要什么。我知道了,但是我如何在google工作表中插入这个公式?谷歌有办法实现这一点吗?谢谢@player0它成功了。你真棒!但是,有没有一种方法,我们可以在日期字段中禁用手动编辑或输入,并且只有勾选复选框时才应填充日期。?