如果/ Else Statement无法发送不同的电子邮件

时间:2016-04-22 21:02:11

标签: javascript if-statement google-apps-script google-sheets

我正在尝试在Google工作表中编写一个脚本,该脚本将根据对多项选择题的响应发送两封不同的电子邮件之一。我可以让我的if / else语句发送一个或另一个电子邮件,但它不会识别多项选择答案的文本并发送正确的电子邮件。

以下是完整的脚本:

function sendEmails() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var startRow = 2;  // First row of data to process
    var numRows = 1;
    // Fetch the range of cells A2:B3
    var dataRange = sheet.getRange(startRow, 1, numRows, 8)
    // Fetch values for each row in the Range.
    var data = dataRange.getValues();
    for (var i = 0; i < data.length; ++i) {
        var row = data[i];
        var title = row[1];  // First column
        var startDate = row[3];       // Second column
        var endDate = row[4];
        var description = row[2];
        var location = row[6];
        var eventImport = row[5];
        var emailAddress = row[7];    
        var multchoice = row[8];

        if (multchoice == "Part Time") {
            var subject = "New Hire Part Time Email - " + startDate;
            var emailBody = "Congradulations"
            var htmlBody = "Congradulations! Part time person"
            MailApp.sendEmail (emailAddress, subject, emailBody);
        } else {   
            var subject = "New Hire Appointment - " + startDate;
            var emailBody = "Congratulations! We are excited"
            var htmlBody = "Congratulation! </i><br/>&nbsp;<br/> We are excited"
            MailApp.sendEmail(emailAddress, subject, emailBody);
        }
    }
}

我认为问题在于:

 if (multchoice == "Part Time")

非常感谢任何帮助!我是新手

2 个答案:

答案 0 :(得分:0)

您似乎正在分配以&#39; 1&#39;开头的变量。我没有&#39; 0&#39;。开始为它们分配0并向上计数。

如果没有使用示例表,我将无法为您进行大量调试。

但是,Apps Script附带了它自己的调试器。选择您希望调试的功能,然后单击播放按钮旁边的小虫图标。

单击要设置断点的侧栏,代码将停止执​​行。

enter image description here

一旦遇到该断点,您就可以看到当前范围内的所有变量。因此,您可以看到arrayvaluei变量。

enter image description here

使用此优势并调试代码以找出问题所在。或者,您可以使用Logger.log()在代码中的某些位置记录值,然后通过日志回读以尝试确定问题所在。

答案 1 :(得分:0)

问题不在于你的if / else语句。问题在于如何从row[]数组中分配变量。在getRange()函数中使用常规数字时,返回的range是这些单元格的数组。数组始终以索引[0]开头。将var multchoice = row[8]更改为var multchoice = row[7],您的if / else语句也可以使用(您也希望更改所有其他引用)。