根据表单生成的vlookup单元格发送电子邮件

时间:2019-11-28 22:32:43

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

我正在寻找一个脚本,当对其中一个客户进行更改时,该脚本会自动向卖方(J列)发送电子邮件。更改是通过Google表单进行的。因此,该表单已链接到电子表格,并且我在客户编号的J列中添加了一个选项卡并在其中进行了vlookup。当我手动键入电子邮件地址时,它可以工作,但是当它是vlookup公式时,它就不起作用了……这是我现在拥有的代码。

谢谢。

function twchange3(e) {
  var range = e.range;
  if (e.range.getColumn()== 10) {
    var sheet = SpreadsheetApp.getActiveSheet();
    var row = SpreadsheetApp.getActiveRange().getRow();
    var value = sheet.getRange(row, 1, 1, 10).getValues();
    var email = value[0][9];
    var router = value[0][1];
    var noclient = value[0][3];
    var nomclient = value[0][4];
    var twactuel = value[0][5];
    var twdemande = value[0][6];
    var raison = value[0][7];
    MailApp.sendEmail(value[0][9], "Demande de changement de Time-Window", 
                      "Bonjour voici une demande de changement de Time-Window pour votre client " + nomclient + "\n\n" + 
                      "Numéro de client: " + noclient + "\n\n" + 
                      "Time-Window Actuel: " + twactuel + "\n\n" + 
                      "Time-Window demandé: " + twdemande + "\n\n" + 
                      "Raison: " + raison + "\n\n" +
                      "Auteur de la demande: " + router + "\n\n");
  }
} 

1 个答案:

答案 0 :(得分:0)

让我改一下你说的话。

  • 客户提交了Google表单,该表单会将结果发送到Google表格的 Tab A
  • 然后有 Tab B 使用VLOOKUP函数检查Google表格中的最新结果
  • 当您在 Tab A 中通过电子邮件手动更改单元格时,脚本将起作用。
  • 当您使用Google表单提交响应时,该脚本不会运行。

这里有一些问题。

手动更改工作表时,将激活onEdit触发器。 当您通过Google表单更新表格时,onEdit不太可能被触发,因为onEdit通常是用户域。可能应该改为触发onChange,甚至可能没有设置它。 然后,即使您设置了onChange并触发了它,我也会说不太可能在 Tab B 的VLOOKUP单元中发生更改,因为后者只是一个过滤器,而实际 Tab A 中可能会发生更改。我之所以说 是因为我决定不测试它,因为您对该问题的描述不是很清楚。

因此,您实际上实际上不需要VLOOKUP,只需直接使用脚本读取更改的单元格即可。

即使是更好的解决方案,也可能是直接使用其自己的脚本和触发器从Google表单读取响应。

相关问题