【发布时间】:2021-06-24 05:54:55
【问题描述】:
当特定列中的单元格已在谷歌表中填写时,我正在尝试向某些用户发送电子邮件通知。我尝试使用推荐的脚本,但是当我执行脚本时,会为电子表格中的每一行发送一封电子邮件。 它应该如何工作: 在我的电子表格中,有 44 列(从 A 到 AR),当指定列中的特定单元格被填满时,我想向特定的人发送电子邮件。例如:当第 V 列中的单元格已填满时,我想向 Abc@gmail.com 发送电子邮件。并且希望在 AB 列中的单元格已填满时发送电子邮件至 bcd@gmail.com,依此类推。我还希望正文电子邮件包含用户需要注意更改的哪一行(但我不知道这方面的脚本)。
谁能解释为什么我每行都会收到一封电子邮件,而脚本却不起作用。我看过其他帖子,但没有运气。非常感谢一些帮助。这是我的脚本。
function SendEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var lr = sheet.getLastRow();
for (var i=6;i<=lr;i++){
var rsh = sheet.getRange(i,21);
var wentao = sheet.getRange(i,27);
var retail = sheet.getRange(i,28);
sheet.getRange
//Fetch values for each row in the Range.
var datarsh = rsh.getValues();
if(datarsh>0){
var row = datarsh[i];
var emailAddress = "abc@gmail.com";
var message = "Hi RSH, ASM has filled a new Mi Shop request. Need your approval on the Mi Shop Request";
var subject = "Pitch Mi Approval - Notification";
MailApp.sendEmail(emailAddress, subject, message);
}
var datawentao = wentao.getValues();
if (datawentao>0){
var row = datawentao[i];
var emailAddress = "bcd@gmail.com";
var message = "Hi Wentao, need your approval on Mi Shop Request in column ";
var subject = "Pitch Mi Approval - Notification";
MailApp.sendEmail(emailAddress, subject, message);
}
var dataretail = retail.getValues();
if(dataretail>0){
var row = dataretail[i];
var emailAddress = "cde@gmail.com";
var message = "Hi Retail Team, Wentao has approved Mi Shop Request. Update the expansion progress in column ";
var subject = "Pitch Mi Approval - Notification";
MailApp.sendEmail(emailAddress, subject, message);
}
}
}
【问题讨论】:
-
这行
sheet.getRange肯定会导致错误。由于rsh只是一个单元格,那么var datarsh = rsh.getValues();应该只是var datarsh = rsh.getValue();其他两个单元格也是如此。顺便说一句,第 21 列是 U 而不是 V。老实说,我认为在处理此类问题之前,我认为您应该花更多时间编写一些基本教程。您对电子表格中的数据的组织方式知之甚少。这是一个很容易用脚本调试器解决的问题。 -
“当特定列中的单元格已被填充时”是什么意思?什么时候编辑?
-
嗨@Martí,我的意思是我希望'abc@gmail.com' 仅在V 列中的单元格已填满时才收到通知,如果我想通知'def@gmail .com' 如果 AB 列中的单元格已被填充(无论其在第 5 行还是第 6 行,如果 AB 列中的任何行已被填充,我希望通过电子邮件通知 'def@gmail.com')。希望它很清楚,非常感谢一些帮助。谢谢!
标签: javascript google-apps-script google-sheets email-notifications