首页 > 解决方案 > 更改时的 Google 表格时间戳

问题描述

我想要实现的目标非常简单,但是我对 Google Sheet Script Editor 感到非常不舒服。

我希望在活动工作表上发生变化时更新某个单元格中的日期。

这就是我到目前为止得到的:

//Timestamp on change
function timestampOnChange() {
  getActiveCell().setValue(new Date());
}

但是,即使已经返回错误消息:/

标签: google-apps-scriptgoogle-sheetstimestamp

解决方案


解释:

  • 您需要创建特定函数的onChange()触发器,当电子表格更改内容结构时,它将更新活动工作表的特定单元格。

  • updateCell()函数使用活动工作表的当前时间戳更新B1的值。

  • 我建议您使用以下方法更新特定工作表而不是活动工作表:

    const sh = ss.getSheetByName('Sheet1');
    

    代替:

    const sh = ss.getActiveSheet();
    

解决方案:

  • 更详细地说,该createOnChangeTrigger()函数将创建触发器,该触发器将在电子表格文件的内容或结构发生变化时onChange()执行,在我们的例子中是活动工作表。updateCell()

    function createOnChangeTrigger(){
      const ss = SpreadsheetApp.getActive();
      ScriptApp.newTrigger("updateCell")
      .forSpreadsheet(ss)
      .onChange()
      .create();
    }
    
    function updateCell(){
      const ss = SpreadsheetApp.getActive();
      const sh = ss.getActiveSheet();  
      sh.getRange('B1').setValue(new Date());
    }
    

指示:

在脚本编辑器中复制/粘贴这两个函数并createOnChangeTrigger()只执行一次。


参考:


推荐阅读