You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在编辑指定列时在对应列添加仅含时间的Timestamp?

实现指定列编辑时生成对应列时间戳

你需要在代码中判断编辑的目标列,仅当编辑A列(列号1)或D列(列号4)时,才在对应列生成仅含时间的时间戳。修改后的代码如下:

/** @OnlyCurrentDoc */
function onEdit(e) {
  const activeSheet = e.source.getActiveSheet();
  const editedColumn = e.range.columnStart;
  
  // 定义触发列与目标列的对应关系:键是触发列号,值是目标列号
  const columnMapping = {
    1: 2,  // 编辑A列时,给B列加时间戳
    4: 5   // 编辑D列时,给E列加时间戳
  };

  // 仅当编辑的列在映射列表中时,执行时间戳写入
  if (columnMapping[editedColumn]) {
    const targetColumn = columnMapping[editedColumn];
    activeSheet.getRange(e.range.rowStart, targetColumn)
      .setValue(new Date())
      .setNumberFormat("HH:mm:ss am/pm"); // 仅显示时间,可按需调整格式
  }
}

关键说明:

  • 通过e.range.columnStart获取当前编辑单元格的列号(A列对应1,D列对应4)
  • columnMapping对象清晰定义了触发列和目标列的对应关系,后续如需扩展其他列只需添加新的键值对
  • 只有编辑指定列时才会触发时间戳写入,避免无关编辑干扰
  • setNumberFormat设置为仅时间格式,你可以根据需求调整为"h:mm am/pm"(12小时制不带秒)或"HH:mm"(24小时制)等格式

内容的提问来源于stack exchange,提问作者Arvie Fajarito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 20:54:56