Google apps script 在从Google Sheets发送电子邮件之前改善所需的条件

Google apps script 在从Google Sheets发送电子邮件之前改善所需的条件,google-apps-script,Google Apps Script,当AJ栏为真时,我想出了一些代码来发送电子邮件。起初它工作得很好,但在我添加了更多的警卫后,它只向第一行发送电子邮件 我想要达到的目标: 人们将发送请求,详细信息将显示在“表单响应4”中 我会通过在最后一列中指出TRUE来批准它 我单击一个按钮来运行脚本 具有TRUE的行将数据通过电子邮件发送到与该行关联的电子邮件地址 代码不能完全工作:如果有三个人应该收到电子邮件,只有第一个人会收到电子邮件。我如何修改我的防护,以向行中有TRUE的所有人发送电子邮件 功能测试(){ var ss=Sprea

当AJ栏为真时,我想出了一些代码来发送电子邮件。起初它工作得很好,但在我添加了更多的警卫后,它只向第一行发送电子邮件

我想要达到的目标:

  • 人们将发送请求,详细信息将显示在“表单响应4”中
  • 我会通过在最后一列中指出
    TRUE
    来批准它
  • 我单击一个按钮来运行脚本
  • 具有
    TRUE
    的行将数据通过电子邮件发送到与该行关联的电子邮件地址
  • 代码不能完全工作:如果有三个人应该收到电子邮件,只有第一个人会收到电子邮件。我如何修改我的防护,以向行中有
    TRUE
    的所有人发送电子邮件


    功能测试(){
    var ss=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var lr=ss.getLastRow();
    var targetSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“表单
    答复4“;
    
    对于(var i=2;i您在循环结束之前插入了return(i);return()在技术上与函数exit()相同,因此您的循环在第一次运行时退出,因此只发送一封电子邮件


    我建议你重新审视一下你的返回逻辑(I)在你的循环中插入一行,因为我看不到你是如何使用它的。

    尝试检查日志或调试你的代码。看起来是因为
    的条件,如果你的邮件发送代码无法访问。在我尝试调试时,没有任何结果,它只是发送电子邮件。至于日志,它只能访问第一行的信息,这意味着你的代码在第一行无法访问,请检查您的数据和代码。我找不到itso return()的问题。我将return(i)或return放在for循环之后,然后它就工作了。现在我遇到了另一个问题,例如,如果名称的第一个字母是B,它将替换为一个数字或名称的第一个字母丢失。
    
    function testing(){
      var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      var lr = ss.getLastRow();
      var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form 
    Responses 4");
    
      for (var i = 2 ; i <= lr ; i++){
        var dpt = targetSheet.getRange(i,4).getValue();
        var purpose = targetSheet.getRange(i,5).getValue();
        var p = "HR", d = "DMS", r = "RIM";
        var check = targetSheet.getRange(i, 36).getValue();
        var currentEmail = targetSheet.getRange(i, 2).getValue();
        var currentName = targetSheet.getRange(i, 3).getValue();
        var remark = targetSheet.getRange(i, 35).getValue();
        var qty1 = targetSheet.getRange(i, 7).getValue();
        var qty2 = targetSheet.getRange(i, 10).getValue();
        var qty3 = targetSheet.getRange(i, 14).getValue();
        var qty4 = targetSheet.getRange(i, 17).getValue();
        var qty5 = targetSheet.getRange(i, 21).getValue();
        var qty6 = targetSheet.getRange(i, 24).getValue();
        var qty7 = targetSheet.getRange(i, 26).getValue();
        var qty8 = targetSheet.getRange(i, 28).getValue();
        var qty9 = targetSheet.getRange(i, 30).getValue();
        var qty10 = targetSheet.getRange(i, 32).getValue();
    
        var ap1 = targetSheet.getRange(i, 8).getValue();
        var ap2 = targetSheet.getRange(i, 11).getValue();
        var ap3 = targetSheet.getRange(i, 15).getValue();
        var ap4 = targetSheet.getRange(i, 18).getValue();
        var ap5 = targetSheet.getRange(i, 22).getValue();
        var ap6 = targetSheet.getRange(i, 25).getValue();
        var ap7 = targetSheet.getRange(i, 27).getValue();
        var ap8 = targetSheet.getRange(i, 29).getValue();
        var ap9 = targetSheet.getRange(i, 31).getValue();
        var ap10 = targetSheet.getRange(i, 33).getValue();
    
        var S1 = targetSheet.getRange(i, 6).getValue();
        var P1 = targetSheet.getRange(i, 9).getValue();
        var S2 = targetSheet.getRange(i, 13).getValue();
        var P2 = targetSheet.getRange(i, 16).getValue();
        var B = targetSheet.getRange(i, 20).getValue();
        var J = targetSheet.getRange(i, 23).getValue();
    
        if (dpt == p){
          if (check == true){
            var templateText = /* lots of HTML */;
            var emailText = templateText.replace("name", currentName)
              .replace("purpose", purpose)
              /* Several more replacements */
              .replace("remark", remark);
            MailApp.sendEmail({to: currentEmail, subject: "UPDATES:" + "KIT EXCHANGE REQUISITION FORM", htmlBody: emailText});
          }
        }
        else if (dpt == d){
          if (check == true){
            var templateText = /* More HTML generation */; 
            var emailText = templateText.replace("name", currentName)
              .replace("purpose", purpose)
              /* more replacements */
              .replace("remark",remark);
            MailApp.sendEmail({to: currentEmail, subject: "UPDATES:" + "KIT EXCHANGE REQUISITION FORM", htmlBody: emailText});
          }
        }
        else if (dpt == r){
          if (check == true){
            var templateText = /* HTML generation */;   
    
            var emailText = templateText.replace("name", currentName)
              .replace("purpose", purpose)
              /* More replacements */
              .replace("remark", remark);
            MailApp.sendEmail({to: currentEmail, subject: "UPDATES:" + "KIT EXCHANGE REQUISITION FORM", htmlBody: emailText});
            return(i);
          }      
        }
      }
    }