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]表示放在触发单元格的下方同一行。
使用步骤
- 打开目标Google Sheets文档
- 点击顶部菜单栏「扩展程序」→「Apps脚本」
- 删除默认代码,粘贴上述脚本
- 根据你的表格结构调整配置项数值
- 点击「保存」,命名项目(如“进度时间戳工具”)
- 返回表格测试:编辑9-14列的单元格,对应位置会自动生成静态时间戳
内容的提问来源于stack exchange,提问作者Will Monaco
相关产品推荐
相关产品推荐

