Google Sheets脚本报错:Sheet对象不存在getLastUpdated函数
问题解决:Google Sheets 获取最后修改信息脚本报错
错误原因
你遇到的TypeError: Cannot find function getLastUpdated in object Sheet错误,是因为**getLastUpdated()方法属于整个Spreadsheet文档对象,而非单个Sheet工作表对象**,你错误地在Sheet实例上调用了这个方法。
修正后的脚本
以下是修复错误并实现自动触发的完整代码:
function getLastModified() { var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getActiveSheet(); // 调用文档对象的getLastUpdated()方法 var lastModified = spreadsheet.getLastUpdated(); var user = Session.getActiveUser().getEmail(); var timeZone = Session.getTimeZone(); var formattedDate = Utilities.formatDate(lastModified, timeZone, "MM/dd/yyyy HH:mm:ss"); var message = "最后修改人:" + user + ",修改时间:" + formattedDate; sheet.getRange("I1").setValue(message); } // 编辑触发函数,实现自动更新 function onEdit(e) { getLastModified(); }
关键说明
- 修复核心错误:将
sheet.getLastUpdated()改为spreadsheet.getLastUpdated(),只有整个文档对象才拥有获取最后更新时间的方法。 - 自动触发设置:
- 简单触发器:直接使用
onEdit函数,保存脚本后编辑工作表会自动执行,但存在权限限制,Session.getActiveUser()在外部编辑者场景下可能无法获取邮箱。 - 可安装触发器:打开脚本编辑器→点击左侧「触发器」图标→添加触发器,选择
getLastModified函数,事件类型设为「编辑时」,能稳定获取用户信息。
- 简单触发器:直接使用
- 自定义格式:消息文本已改为中文,你可修改
MM/dd/yyyy HH:mm:ss来调整日期时间的显示格式。
内容的提问来源于stack exchange,提问作者Sean Doyle
相关产品推荐
相关产品推荐

