2014-02-07 111 views
0

我将两个基本功能拼凑在一起,以创建一个Google表单,当用户点击提交时,该表单返回唯一标识号。这些功能位于电子表格中收集响应并在提交时触发。今天早上一切都很好。然后在今天下午当提交的表单中的最后一个字段为“否”时,电子邮件的正文为空。现在电子邮件的正文总是空白。此代码是否有任何原因不再有效?谷歌应用程序脚本:mailapp已停止在主体中包含文本

function addFormula() { 
    var sheet1 = SpreadsheetApp.getActiveSheet(); 
    var startRow1 = 2; 
    var startColumn1 = 6; 
    var numberRows1 = 1; 
    var numberColumns1 = 9; 
    var lastRow1 = sheet1.getLastRow(); 
    var sourceRange1 = sheet1.getRange(startRow1, startColumn1, numberRows1, numberColumns1); 
    var destinationRange1 = sheet1.getRange(lastRow1, startColumn1, numberRows1, numberColumns1); 
    sourceRange1.copyTo(destinationRange1); 
}; 


var EMAIL_SENT = "EMAIL_SENT"; 

function sendEmails2() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var startRow = sheet.getLastRow(); // First row of data to process 
    var numRows = 9; // Number of rows to process 
    // Fetch the range of cells 
    var dataRange = sheet.getRange(startRow, 1, numRows, 9) 
    // 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 TimeStamp = row[0]; // First column 
    var Name = row[1];  // Second column 
    var Email = row[2];  // Third column 
    var Leg1 = row[3]; 
    var CNeed = row[4]; 
    var Year = row[5]; 
    var CCode = row [6]; 
    var Number = row [7]; 
    var TripNumber = row [8]; 
    var emailSent = row [9]; 
    if (emailSent != EMAIL_SENT) { // Prevents sending duplicates 
     var subject = "Automated Message: Your Trip Number"; 
     MailApp.sendEmail(Email, subject, TripNumber); 
     sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT); 
     // Make sure the cell is updated right away in case the script is interrupted 
     SpreadsheetApp.flush(); 
    } 
    } 
} 
+0

从我所了解的你正在阅读最后一排下面的9排......他们确实是空的......我错了还是错过了明显的东西? (这只是一个建议...) –

+0

感谢您的采访。它应该在数据的最后一行读取9列。电子邮件地址和主题最终在电子邮件中,但有时电子邮件的主体是空白的。 – user3285805

+0

?当写sheet.getRange(startRow,1,numRows,9)时,你正在读取9行9列,从lastRow列开始A –

回答

0

我想我想通了。这两个函数都是在表单提交中执行的,并且它是随机的,哪一个会首先启动。我将这两个功能合并为一个,看起来像解决了问题。感谢Serge帮忙。

相关问题