Google Sheets提交表单报ReferenceError: shUserForm is not defined错误求助
问题解决说明
错误原因
ReferenceError: shUserForm is not defined报错由变量大小写不匹配导致:
在submitData函数头部定义的变量为shUserForm(字母F大写),但后续给Database工作表写入数据的12行代码中,全部写成了shUserform(字母f小写),Google Apps Script严格区分大小写,因此识别为未定义变量。
修复方案
把submitData函数中所有写入数据库部分的shUserform全部替换为shUserForm即可,修正后的对应代码段如下:
// 修正后的写入数据库代码 datasheet.getRange(blankRow, 3).setValue(shUserForm.getRange("C7").getValue()); //Street # datasheet.getRange(blankRow, 4).setValue(shUserForm.getRange("C9").getValue()); //Prefix datasheet.getRange(blankRow, 5).setValue(shUserForm.getRange("C11").getValue()); //Street Name datasheet.getRange(blankRow, 6).setValue(shUserForm.getRange("C13").getValue()); //suffix datasheet.getRange(blankRow, 7).setValue(shUserForm.getRange("C15").getValue()); //city datasheet.getRange(blankRow, 8).setValue(shUserForm.getRange("C17").getValue()); //state datasheet.getRange(blankRow, 9).setValue(shUserForm.getRange("C19").getValue()); //County datasheet.getRange(blankRow, 10).setValue(shUserForm.getRange("C21").getValue()); //Zip datasheet.getRange(blankRow, 2).setValue(shUserForm.getRange("C24").getValue()); //Property Type datasheet.getRange(blankRow, 11).setValue(shUserForm.getRange("C26").getValue()); //Year Built datasheet.getRange(blankRow, 12).setValue(shUserForm.getRange("C28").getValue()); //Sqft datasheet.getRange(blankRow, 13).setValue(shUserForm.getRange("C30").getValue()); //bed datasheet.getRange(blankRow, 14).setValue(shUserForm.getRange("C32").getValue()); //bath
优化建议
- 可将重复的
getRange操作封装为数组批量处理,减少冗余代码,提升执行效率 - 可新增工作表名称校验逻辑,避免手动修改工作表名后出现找不到工作表的报错
内容的提问来源于stack exchange,提问作者gmhubb
相关产品推荐
相关产品推荐

