尽管已正确更新了链接的SPEADSHEET,并且重新提交表单中的值被标记为更改,这些值似乎并未由
收集。var formValues = e.namedValues;
var firstName = formValues['First Name'][0];
var lastName = formValues['Last Name'][0];
var emailAddr = formValues['Email Address'][0];
var eventRow = e.range.getRow();
当脚本试图发送和发送电子邮件发送消息例外时,该脚本失败了:无法发送电子邮件:sendemail上没有收件人(代码:101:15)。...执行的脚本被称为发送电子邮件 Maybe当您重新提交一个表单时,仅在EnamedValues中拾取了更改的值?
使用e.range.getValues()
建议的stackoverflow上的其他答案我尝试了如下
function sendEmail(e) {
// Get Relevant Data from Form Submission
var responseArr = e.range.getValues();
var eventRow = e.range.getRow();
Logger.log('Event Row', responseArr);
var responseSheet = e.source.getSheetByName('Form Responses 1');
const lastResponseCol = responseSheet.getLastColumn();
var headerArr = responseSheet.getSheetValues(1,1,1,lastResponseCol);
Logger.log('Header Row', headerArr);
var firstName = responseArr[headerArr.indexOf('First Name')];
var lastName = responseArr[headerArr.indexOf('Last Name')];
var memType = responseArr[headerArr.indexOf('Membership Type')];
var maaaNum = responseArr[headerArr.indexOf('MAAA Number')];
var emailAddr = responseArr[headerArr.indexOf('Email Address')];
}
log既显示了响应网和headerarr as empty。 我学到的一个东西是logger.log值仅在您实时关闭“显示”
时显示
任何帮助
您有一个Google表格,其中包含标题为“名字”,“姓氏”,“会员类型”,“ MAAA号码”和“电子邮件地址”的问题 您正在使用
namedvalues
为电子邮件创建值,但是其中的某些或全部作为“编辑”提交的空白。
原因是双重的:“编辑”提交的事件对象仅包含编辑(加上时间戳)
字段的“名称值”和“值”。当在链接的电子表格中收到编辑提交时,响应未附加到链接表中。相反,原始提交中的数据已修改,这反映在
rowStart
/
rowEnd
e.range.rowStart
确定包含相关数据的行。
// This function is bound to the linked spreadsheet.
// It is triggered by an installable `onFormSubmit` trigger
function sendEmail(e) {
Logger.log(JSON.stringify(e)) // DEBUG
var editedRow = e.range.rowStart
Logger.log("DEBUG: The edited row = "+editedRow)
var responseSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 4")
var lastResponseCol = responseSheet.getLastColumn()
var data = responseSheet.getSheetValues(1,1,responseSheet.getLastRow(),lastResponseCol)
Logger.log("DEBUG: The header row values = "+data[0])
Logger.log("DEBUG: The data row values = "+data[editedRow-1])
var firstName = data[editedRow-1][data[0].indexOf('First Name')]
var lastName = data[editedRow-1][data[0].indexOf('Last Name')]
var memType = data[editedRow-1][data[0].indexOf('Membership Type')]
var maaaNum = data[editedRow-1][data[0].indexOf('MAAA Number')]
var emailAddr = data[editedRow-1][data[0].indexOf('Email Address')]
Logger.log("DEBUG: First Name:"+firstName+", Last Name:"+lastName+", Membership Type: "+memType+", MAAA Num:"+maaaNum+", Email Address:"+emailAddr)
// OP to supply balance of function
}
在编辑提交之前链接表
event对象 - 原始提交:
{
"authMode":"FULL",
"namedValues":{"Email Address":["[email protected]"],"Timestamp":["10/02/2025 23:22:34"],"MAAA Number":["6543"],"Last Name":["Star"],"First Name":["Ringo and barbara"],"Membership Type":["Life"]},
"range":{"columnEnd":6,"columnStart":1,"rowEnd":3,"rowStart":3},
"source":{},
"triggerUid":"1333227230",
"values":["10/02/2025 23:22:34","Ringo and barbara","Star","Life","6543","[email protected]"]
}
event对象 - 编辑提交:
{
"authMode":"FULL",
"namedValues":{"Email Address":[""],"Timestamp":["10/02/2025 23:29:56"],"MAAA Number":[""],"First Name":["Ringo and Barbara"],"Last Name":["Starkey"],"Membership Type":[""]},
"range":{"columnEnd":3,"columnStart":1,"rowEnd":3,"rowStart":3},
"source":{},
"triggerUid":"1333227230",
"values":["10/02/2025 23:29:56","Ringo and Barbara","Starkey","","",""]
}