Google Apps Script报错TypeError: Cannot read properties of undefined (reading 'values')求助
解决Google表单脚本
TypeError: Cannot read properties of undefined (reading 'values')问题 问题原因
这个错误是因为脚本依赖的表单提交事件对象e结构发生了变更,或是直接在编辑器手动运行脚本时未传入合法的e参数(手动运行时e为undefined,自然无法读取values属性)。结合你提到同类脚本都出问题,大概率是Google Forms的事件对象结构近期更新,导致原有的e.values无法正常获取。
修复步骤
区分测试场景
- 不要直接在编辑器点击运行按钮测试脚本,手动运行时没有表单提交触发的
e对象,必然会报这个错误。测试必须通过手动提交一次表单来验证。
- 不要直接在编辑器点击运行按钮测试脚本,手动运行时没有表单提交触发的
替换
e.values的取值逻辑
将原脚本中依赖e.values的部分,改为从e.response对象中获取响应数据,示例代码如下:// 原报错代码 // var formValues = e.values; // 新代码 var formResponse = e.response; var itemResponses = formResponse.getItemResponses(); // 按表单字段顺序提取所有响应值 var formValues = itemResponses.map(function(itemResp) { return itemResp.getResponse(); }); // 若需要保留原e.values包含的提交时间戳,添加以下代码 formValues.unshift(formResponse.getTimestamp().toISOString());替换后,原脚本中使用
formValues的逻辑可保持不变,因为新的formValues结构和原e.values一致。检查触发器配置
确认脚本的触发器类型是表单提交,而非其他类型(比如时间驱动),且触发器绑定账号与表单所有者账号一致。查看执行日志
提交测试表单后,在脚本编辑器中点击「查看」→「日志」,确认是否还有错误,若有其他报错可进一步排查。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

