在电子邮件脚本中返回 "未定义 "或无数据的变量。

问题描述 投票:0回答:1

我试图让一个脚本从一个工作表中发送一封确认邮件,由 "表单提交 "触发,除了2个变量之外,所有的工作都能正常进行,但似乎脚本并没有发现这些变量。

代码:我想让一个脚本发送一个新的数据,并将其粘贴到工作表中。

function myFunction(e) {

  var userName = e.values[2];  //this info comes from form and works
  var teamName = e.values[1];  //this info comes from form and works
  var recipient = e.values[4]; //this info comes from form and works
  var refNumber = e.values[22]; //this info comes from an array in a column and returns "undefined"
  var NetballWeekend = e.values[6]; //this info comes from form and works
  var editURL = e.values[20]; //this info comes from another function which pastes it into column "U" and returns blank

  var subject = "SunSports Netball Weekend - Your Booking for " + teamName + "." ;
  var body = "Hello " + userName + "."
 + "\n" + "We have received your booking form for the " + NetballWeekend + "."
google-apps-script undefined google-form gs-installable-triggers
1个回答
0
投票

e.values 是一个事件对象,绑定到事件 onFormSubmit

  • 事件对象 意味着这些值与事件相关,或者换句话说,对于formSubmit来说,它是通过表单提交的值。
  • 如果您从表单响应中用附加值填充新提交的值行,这些值不能用 e.values
  • 相反,你可以使用 e.range.getRow() 检索最新提交的表格的行号,并检索手动添加的数值,例如 getRange(e.range.getRow(), 21).getValue()
  • 注意,如果U列和W列中的值是在提交表单数据后添加的,那么它们可能无法在表单提交时直接提供,而是会稍微延迟。
  • 在这种情况下,它们可能是 undefined onFormSubmit,而最好的方法是等待,例如通过将 Utilities.sleep() 检索这些值之前

样品:

function myFunction(e) {
  Utilities.sleep(1000);
  var range = e.range;
  var row = range.getRow();
  var sheet = range.getSheet();
  var userName = e.values[2];  //this info comes from form and works
  var teamName = e.values[1];  //this info comes from form and works
  var recipient = e.values[4]; //this info comes from form and works
  var refNumber = sheet.getRange(row, 23).getValue();
  var NetballWeekend = e.values[6]; //this info comes from form and works
  var editURL = sheet.getRange(row, 21).getValue();

  var subject = "SunSports Netball Weekend - Your Booking for " + teamName + "." ;
  var body = "Hello " + userName + "."
 + "\n" + "We have received your booking form for the " + NetballWeekend + "."
  ...
}
© www.soinside.com 2019 - 2024. All rights reserved.