简体   繁体   中英

Still return as FALSE even for MATCH values between 2 google sheets?

I'm trying for days already to do this but still to no avail. I'm trying to validate the testID and the email address entered in gsheet "testslip" with the ones entered in gsheet "students". If both matches, then the URL from gsheet "testslip" shall be updated in gsheet "students" at that matched row. Else, the error will be emailed to the email address in gsheet "testslip" to notify them to do necessary action. When I run the code below, even both entries in both gsheets are matched correctly, the output is still the error being emailed. If I delete the checking on "non-matched" values, then the output will be as expected, which is the URL will be updated. But doing that means my script doesn't handle negative scenarios and that would defeat the purpose then. Please help me to correct my code below. Thank you in advance:-

    function testslipupdate(){
      var psheet=SpreadsheetApp.openById("1O2-xzPCjQO0cj_6LjehFnKmmTL519gXEpRYwRoEwIFA").getSheetByName("testslip");
      var msheet=SpreadsheetApp.openById("1yLXRoV4MH6p_5F6rX3MnGnruDQVr4dqK-6GhRjRv3ns").getSheetByName("students");
     
      var lrow = psheet.getLastRow();
      var testID = psheet.getRange(lrow,2).getValue();
      var uemail = psheet.getRange(lrow,3).getValue();
      var slip = psheet.getRange(lrow,4).getValue();
      
      
      var data = msheet.getDataRange().getValues();
      var dtlen = data.length;
    
      
      for(var i =1; i<data.length;i++){
         if(data[i][0] == testID && data[i][2]==uemail){
         msheet.getRange(i+1,20).setValue(slip);  
         break;
         }
         //else if(data[i][0]==testID && data[i][2]!==uemail){ 
         else if(data[i][2]!==uemail){
              MailApp.sendEmail(""+uemail+"","Email address is not matched with Test ID","","Please change to valid email address");     
              break;     
              }   
         //else if(data[i][0]!==testID){
         else {
              MailApp.sendEmail(""+uemail+"","Record not found","","Please see Principal for a new registration.");
              break;
              }
      }
    }

Below is my reviewed code after I found the solution:-

function testslipupdate(){
var psheet=SpreadsheetApp.openById("1O2-xzPCjQO0cj_6LjehFnKmmTL519gXEpRYwRoEwIFA").getSheetByName("testslip");
var msheet=SpreadsheetApp.openById("1yLXRoV4MH6p_5F6rX3MnGnruDQVr4dqK-6GhRjRv3ns").getSheetByName("students");
var lrow = psheet.getLastRow();
var testID = psheet.getRange(lrow,2).getValue();
var uemail = psheet.getRange(lrow,3).getValue();
var slip = psheet.getRange(lrow,4).getValue();
var data = msheet.getDataRange().getValues();
var dtlen = data.length;

var qrow = data.findIndex(qID=> {return qID[0] == quoteID});  
var mrow = data.findIndex(mailID=> {return mailID[2] == uemail}); 

var mqrow=qrow+1;
var mmrow=mrow+1;

if(mqrow==0){
MailApp.sendEmail(""+uemail+","Record not found","","Please see Principal for a new registration.");
}
else if(mqrow!=0&&mmrow==0){
     MailApp.sendEmail(""+uemail+","Email address is not matched with Test ID","","Please change to valid email address");
     }else{
          msheet.getRange(mqrow,20).setValue(slip);
      }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM