Google Sheets:相邻单元格更新时自动添加多单元格时间戳
解决Google Sheets固定时间戳问题
直接给你改好的可用代码,顺便说下原来代码没生效的原因:
问题出在哪?
你之前改的代码有几个关键错误:
- 工作表名称没换成你的「Payroll」,还是默认的"Your Sheet Name"
- 列判断写的是
<7,范围太宽,没有精准定位到D列(第4列) - 设置时间戳的单元格写死成了
(1,2),也就是第1行B列,不是你需要的当前编辑行的E列
可用代码
复制下面的代码到Apps脚本编辑器:
function onEdit(e) { const sheet = e.range.getSheet(); // 校验条件:Payroll工作表、编辑的是D列(第4列)、行号大于189 if (sheet.getName() === "Payroll" && e.range.columnStart === 4 && e.range.rowStart > 189) { // 输入姓名时添加时间戳,删除姓名时可选清空时间戳 if (e.value) { sheet.getRange(e.range.rowStart, 5).setValue(new Date()); } else { sheet.getRange(e.range.rowStart, 5).clearContent(); } } }
怎么设置?
- 打开你的Payroll表格,点顶部「扩展程序」→「Apps脚本」
- 删掉编辑器里默认的代码,粘贴上面的代码
- 点击保存按钮,随便给项目起个名字(比如「签字时间戳」)
- 关闭脚本编辑器,回到表格测试:在D列190行及以下输入姓名,E列会自动生成固定时间戳(不会随时间变动)
补充说明
- 这个用的是Google Sheets的简单触发器
onEdit,不需要额外授权,只要经理能编辑自己的D列单元格,就能触发时间戳生成 - 时间戳是直接写入单元格的静态值,不是公式,所以不会像
NOW()那样自动更新
内容的提问来源于stack exchange,提问作者Matt P
相关产品推荐
相关产品推荐

