求助:Google Sheets AppScript自动时间戳代码无法运行问题
问题排查与修正方案
你的代码存在几个关键错误,导致功能完全失效,逐一说明并修正:
错误点分析
- 工作表判断逻辑错误:
s.getName()获取的是整个电子表格文件的名称,而非当前活动单元格所在的工作表名称,因此永远无法匹配"Sheet1"。 - 列判断条件错误:
getColumn()返回的是数字(C列对应数字3),你却和字符串"C"做比较,该条件永远不成立。 - 日期对象调用错误:JavaScript中不存在
Date_Time()构造函数,获取当前日期时间的正确写法是new Date()。
修正后的代码
function onEdit(e) { // 获取编辑单元格所在工作表与列号 const activeSheet = e.range.getSheet(); const editedColumn = e.range.getColumn(); // 校验是否为Sheet1的C列(对应数字3) if (activeSheet.getName() === "Sheet1" && editedColumn === 3) { const prevCell = e.range.offset(0, -1); // 检查左侧单元格是否为空 if (prevCell.getValue() === '') { // 写入当前日期时间 prevCell.setValue(new Date()); // 可选:设置统一日期格式,可根据需求调整 prevCell.setNumberFormat("yyyy-MM-dd HH:mm:ss"); } } }
额外说明
- 使用带
e参数的onEdit触发器是更规范的写法,e.range直接指向编辑的单元格范围,避免依赖全局的getActiveCell,在多用户编辑场景下更稳定。 - 如果需要固定显示的日期格式,可保留
setNumberFormat方法,按需修改格式字符串。
内容的提问来源于stack exchange,提问作者Manuela González
相关产品推荐
相关产品推荐

