Google apps script 当单元格值更改时,使用多个工作表选项卡发送电子邮件通知
下面的函数工作得很好,但我想添加第二张表,它有相同数量的列和行。当用户在第7列中选择“是”时,逻辑相同。如果用户在表单2中选择“是”,我如何发送电子邮件。我确实创建了重复的函数和名称表作为“Sheet2”。当我在Sheet2中单击“是”时,我会收到Sheet1和Sheet2的电子邮件通知,即使Sheet1未选择“是”。如果用户在Sheet1中选择“是”,则只能从Sheet1和Sheet2接收电子邮件。我该怎么做呢Google apps script 当单元格值更改时,使用多个工作表选项卡发送电子邮件通知,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,下面的函数工作得很好,但我想添加第二张表,它有相同数量的列和行。当用户在第7列中选择“是”时,逻辑相同。如果用户在表单2中选择“是”,我如何发送电子邮件。我确实创建了重复的函数和名称表作为“Sheet2”。当我在Sheet2中单击“是”时,我会收到Sheet1和Sheet2的电子邮件通知,即使Sheet1未选择“是”。如果用户在Sheet1中选择“是”,则只能从Sheet1和Sheet2接收电子邮件。我该怎么做呢 function sendNotification(e){ var ss =
function sendNotification(e){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var editedRange = e.range;
if(sheet.getName()=='Sheet1' && editedRange.getColumn()==7 && e.value=='Yes'){
var row = editedRange.getRow();
var numRows = sheet.getLastRow()-1;
var row_values = sheet.getRange(row, 1, numRows, 7).getValues()[0];
var first_name = row_values[0];
var last_name = row_values[1];
var company = row_values[3];
var email= row_values[5];
var message = "The person has completed Sheet1"+first_name+" "+last_name+ " -
"+company;
var subject = "Completed - "+first_name+" "+last_name;
MailApp.sendEmail(email, subject, message);
}
}
替换
var sheet = ss.getSheetByName('Sheet1');
借
替换
if(sheet.getName()=='Sheet1' && editedRange.getColumn()==7 && e.value=='Yes'){
借
['Sheet1','Sheet2'].indexOf(sheet.getName())
将分别返回0
或1
,如果sheet.getName()
返回'Sheet1'
或'Sheet2'
,则在任何其他情况下返回-1
注意:您可以删除
var ss=SpreadsheetApp.getActiveSpreadsheet()代码>谢谢鲁本!它在Sheet2上运行良好,但如果我在Sheet1中选择yes,我会收到Sheet2的电子邮件通知。如果选择“是”,则不会从Sheet1收到任何通知。很抱歉。。。最新答案
if(sheet.getName()=='Sheet1' && editedRange.getColumn()==7 && e.value=='Yes'){
if(['Sheet1', 'Sheet2'].indexOf(sheet.getName()) > -1 && editedRange.getColumn()==7 && e.value=='Yes'){