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

Google Sheets多列触发静态时间戳脚本开发求助

Google Sheets 多列触发静态时间戳脚本

修改后的适配脚本

// 核心配置项
// 需要监控值变更的进度列(对应你的9-14列)
var TRIGGER_COLUMNS = [9, 10, 11, 12, 13, 14];
// 时间戳相对于触发单元格的偏移位置 [行偏移, 列偏移],示例为同一行、列向右偏移13列
var TIMESTAMP_OFFSET = [0, 13];
// 目标工作表名称
var SHEET_NAME = 'Pipeline';

function onEdit(e) {
  // 通过编辑事件上下文获取工作表和编辑单元格,提升脚本性能
  var sheet = e.source.getActiveSheet();
  var editedCell = e.range;
  
  // 校验是否在目标工作表
  if (sheet.getSheetName() !== SHEET_NAME) return;
  
  // 校验编辑的列是否在监控列范围内
  var editedColumn = editedCell.getColumn();
  if (!TRIGGER_COLUMNS.includes(editedColumn)) return;
  
  // 生成并设置静态时间戳
  var timestampCell = editedCell.offset(TIMESTAMP_OFFSET[0], TIMESTAMP_OFFSET[1]);
  timestampCell.setValue(new Date());
}

自定义调整说明

  • 限定特定值触发:如果仅需要单元格变为你指定的4种标记值时才生成时间戳,可在!TRIGGER_COLUMNS.includes(editedColumn)) return;之后添加以下代码块(替换示例中的值为你的实际标记):
    // 允许触发时间戳的特定标记值
    var ALLOWED_VALUES = ['待启动', '进行中', '已完成', '已取消'];
    var cellValue = editedCell.getValue().toString().trim();
    if (!ALLOWED_VALUES.includes(cellValue)) return;
    
  • 调整时间戳位置:修改TIMESTAMP_OFFSET的数值即可,比如[0,-1]表示时间戳放在触发单元格的左侧同一列,[1,0]表示放在触发单元格的下方同一行。

使用步骤

  1. 打开目标Google Sheets文档
  2. 点击顶部菜单栏「扩展程序」→「Apps脚本」
  3. 删除默认代码,粘贴上述脚本
  4. 根据你的表格结构调整配置项数值
  5. 点击「保存」,命名项目(如“进度时间戳工具”)
  6. 返回表格测试:编辑9-14列的单元格,对应位置会自动生成静态时间戳

内容的提问来源于stack exchange,提问作者Will Monaco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:10:28