如果某些价值是用Google表格写的,请发送电子邮件

时间:2013-07-05 23:43:39

标签: google-apps-script google-sheets google-form

我正在与Gforms合作,我需要向“A Friend”发送电子邮件当提交的最后一个表单在“J”列中有一定值时,在这种情况下:“Roberto”。这是我的剧本。但它似乎不起作用,当在表单中提交该值时,我没有收到任何电子邮件。我确实设置了触发器,以便在提交表单时运行脚本。

function myNotification() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ranchE = e.range.getRow();
  var Kjota = "J";
  var rangex = Kjota + ranchE;
  var value = ss.getSheetByName("Respuestas de formulario").getRange(rangex).getValue();
  var email = "heregoes@myemail.com";
  if( value == "Roberto" ) {
      MailApp.sendEmail(email, "Test", "Yes is Roberto");
  }
}

1 个答案:

答案 0 :(得分:0)

要访问发送到您的函数的事件信息,您需要包含e作为参数。请参阅Understanding Events以了解传递给触发器功能的信息。

例如,e.values是由触发该函数的表单提交的值数组。您无需阅读电子表格 - 信息将免费提供给您。

由于它是一个数组,e.values从0开始编号。因此,要访问列J,您需要元素9.(J是电子表格中的第10列。)

如果我们想从字母计算列数,我们可以这样做:

var Kjota = "J";
var colIndex = Kjota.charCodeAt(0) - 'A'.charCodeAt(0);  // colIndex = 9

还有一件事 - 如果它是您的脚本,并且您希望将电子邮件发送给您,则可以使用会话服务轻松获取您自己的电子邮件。这使得您的脚本也更容易分享。

所以,这就是你所需要的:

function myNotification(e) {
  if( e.values[9] == "Roberto" ) {
      var email = Session.getUser().getEmail();
      MailApp.sendEmail(email, "Test", "Yes is Roberto");
  }
}