Apps Script:谷歌表格特定单元格变更时为对应列添加时间戳
谷歌表格时间戳功能实现方案
你可以选择两种实现方式,按需选用即可:
方案一:直接绑定按钮(推荐,匹配你简化后的需求)
这种方案点击按钮时直接触发时间戳写入,不需要依赖单元格监听,稳定性更高。
步骤1:写入Apps Script代码
- 打开你的目标谷歌表格,点击顶部菜单栏「扩展程序」->「Apps Script」进入脚本编辑器
- 清空编辑器内默认的
myFunction模板代码,粘贴以下代码:
// ON按钮绑定的函数 function onButtonON() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 找到Z列第一个空行 const zLastRow = sheet.getRange('Z:Z').getValues().filter(String).length; // 写入当前时间戳 sheet.getRange(zLastRow + 1, 26).setValue(new Date()); // 如果你原来的按钮已经能修改K3为ON,可删掉下面这行 sheet.getRange('K3').setValue('ON'); } // OFF按钮绑定的函数 function onButtonOFF() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 找到AA列第一个空行 const aaLastRow = sheet.getRange('AA:AA').getValues().filter(String).length; // 写入当前时间戳 sheet.getRange(aaLastRow + 1, 27).setValue(new Date()); // 如果你原来的按钮已经能修改K3为OFF,可删掉下面这行 sheet.getRange('K3').setValue('OFF'); }
- 点击编辑器顶部的「保存项目」按钮,随便给项目起个名字比如「时间戳工具」,完成保存。
步骤2:给按钮绑定脚本
- 回到谷歌表格界面,右键你已经创建好的ON按钮,点击右上角的三个点图标,选择「分配脚本」
- 在弹出的输入框中输入
onButtonON,点击确定 - 按照同样的操作给OFF按钮分配
onButtonOFF脚本即可
测试点击按钮就能对应在Z、AA列的末尾新增时间戳。
方案二:监听K3单元格变更
如果需要不管是点击按钮改K3,还是手动修改K3都能触发时间戳写入,可以用这个方案:
- 同样打开Apps Script编辑器,粘贴以下代码:
function onEdit(e) { // 只监听K3单元格的变更 if (e.range.getA1Notation() !== 'K3') return; const sheet = e.source.getActiveSheet(); const cellValue = e.value; if (cellValue === 'ON') { const zLastRow = sheet.getRange('Z:Z').getValues().filter(String).length; sheet.getRange(zLastRow + 1, 26).setValue(new Date()); } else if (cellValue === 'OFF') { const aaLastRow = sheet.getRange('AA:AA').getValues().filter(String).length; sheet.getRange(aaLastRow + 1, 27).setValue(new Date()); } }
- 保存代码即可,
onEdit是谷歌表格的内置触发函数,无需额外绑定,修改K3时会自动执行。
注意事项
- 如果时间显示不符合你的时区要求,可以在Apps Script编辑器左侧点击「项目设置」,找到「时区」选项,调整为你所在的时区(比如中国区选
Asia/Shanghai)即可。 - 如果需要时间戳带固定格式,可以在
setValue之后追加.setNumberFormat('yyyy-mm-dd hh:mm:ss')来自定义格式。
内容的提问来源于stack exchange,提问作者Sherif Zorkani
相关产品推荐
相关产品推荐

