Google apps script 当单元格值更改时,使用多个工作表选项卡发送电子邮件通知

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 =

下面的函数工作得很好,但我想添加第二张表,它有相同数量的列和行。当用户在第7列中选择“是”时,逻辑相同。如果用户在表单2中选择“是”,我如何发送电子邮件。我确实创建了重复的函数和名称表作为“Sheet2”。当我在Sheet2中单击“是”时,我会收到Sheet1和Sheet2的电子邮件通知,即使Sheet1未选择“是”。如果用户在Sheet1中选择“是”,则只能从Sheet1和Sheet2接收电子邮件。我该怎么做呢

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'){