2016-12-29 104 views
0

我正在製作一個電子表格,它循環顯示兩欄中的值。一列(47)包含將在電子郵件中發送的消息,另一列(48)包含消息發送時間的時間戳。Google Spreadsheets if ==''not working

該腳本檢查消息值是否爲空並且時間戳爲空。如果是這樣,這意味着消息從未發送,然後腳本發送消息。

如果時間戳記列中有值,我希望它不發送消息。我以前曾經使用過它,過去它已經工作過,我不確定它爲什麼現在不工作。即使有時間戳,它仍然會發送消息。我錯過了什麼?下面是代碼(對不起,這不是最好的編寫的代碼,我知道任何提示,使其更好地將不勝感激。):

function listingPending2WeekNoticeEmail() { 

    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("VacancyReportMarketing"); 

    // figure out what the last row is 
    var lastRow = sheet.getLastRow(); 

    // the rows are indexed starting at 1, and the first 3 row 
    // is the headers, so start with row 4 
    var startRow = 4; 

    // grab the '2 week notice sent' column 48 (AV)) 
    var range = sheet.getRange(2,48,lastRow-startRow+1,1); 
    var numRows = range.getNumRows(); 
    var timestamp_values = range.getValues(); 

    // Now, grab the listing pending 2 week notice column 47 (AU) 
    range = sheet.getRange(4, 47, lastRow-startRow+1, 1); 
    numRows = range.getNumRows(); 
    var reminder_info_values = range.getValues(); 

    var warning_count = 0; 
    var msg = ""; 

    // Loop over the days left values 
    for (var i = 0; i <= numRows - 1; i++) { 
    var timestamp = timestamp_values[i][0]; 
    var reminder_info = reminder_info_values[i][0]; 
    // var days_left = days_left_values[i][0]; 
    if(reminder_info != '' && timestamp == '') { 
     Logger.log(timestamp); 
     // if reminder not empty but timestamp empty, do something with the data. 

     var reminder_name = reminder_info_values[i][0]; 

     msg = msg + reminder_name+"\n\n"; 
     var msg2 = "\n"+"Within the 2 weeks prior to unit being estimated ready, Marketing Department should begin advertising the above units. If assets are missing, Marketing should begin scheduling with the property manager a time to visit the property as soon as it is ready. Please begin to compile your schedule to collect missing assets and submit to Marketing Manager for approval. Thank you!" 
     warning_count++; 


    } 
    } 

    if(warning_count) { 
    MailApp.sendEmail("[email protected],[email protected]", 
         "2 WEEK NOTICE - LISTINGS PENDING", msg+msg2); 
    timestamp2WeekNoticeSent(); 

    } 

}; 

function timestamp2WeekNoticeSent(){ 

    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("VacancyReportMarketing"); 
    var lastRow = sheet.getLastRow() 

    for (var i = 1; i <= lastRow; i++){ 
    // get column AU (47), every row to last row 
    var noticeRange = sheet.getRange([i], 47); 
    var noticeValues = noticeRange.getValues(); 
    // get column AV (48), every row to last row 
    var timeRange = sheet.getRange([i], 48); 
    var timeValues = timeRange.getValues(); 

    if (noticeValues != '' && timeValues == ''){ // 
     timeRange.setValue(new Date()); 

    } 
    } 
} 
+0

確定是否發送電子郵件的變量是'warning_count'。因此,從這個循環中記錄Logger.log(warning_count)開始,看看它爲什麼會變得正確。 – FTP

回答

1

我只是意識到,我得到列48的起始範圍第2行,當我的開始行應該是4.我得到的範圍從第4列開始,像4我應該。由於不匹配,當我遍歷這些值時,它們不會在同一行中循環。所以我只是改變了第48列的getRange值,以4開始而不是2開始,現在它正在工作。呃...