2017-05-30 5 views
0

Ich habe Live-Daten mit der IMPORTHTML-Funktion in Google Tabellen importiert. Meine Anforderung ist, dass ich jedes Mal eine E-Mail senden muss, wenn der Wert der Zelle über eine bestimmte Zahl hinausgeht. Ich fand das folgende auf Web,Senden von E-Mails aus der Google-Tabelle "NUR EINMAL"

{ 
    var ss = SpreadsheetApp.getActive(); 
    var sheet = ss.getSheetByName("Profit Ratio"); 

    var valueToCheck = sheet.getRange("D7").getValue(); 

    if(valueToCheck > 3) { 
     MailApp.sendEmail("zak*******@gmail.com", "Current Profit Ratio", "Current Profit Ratio is 1:" + valueToCheck+ " !!!"); 
    } 
} 

Aber das Problem dabei ist, dass, wenn der Wert über geht, hält sie E-Mails jede Minute zu senden, bis es unter 3 geht Ich will nicht, dass das geschehen . Ich möchte eine E-Mail nur einmal senden, wenn sie über 3 geht, und die nächste E-Mail muss sein, wenn sie nach dem Abstieg wieder über 3 hinausgeht. Außerdem möchte ich machen 3<it<10 machen. Wie mache ich beides?

Antwort

0

Mit dem Eigenschaften-Service können Sie verfolgen, ob die aktuelle Erfüllung der Kriterien bereits zwischen den Ausführungen ausgeführt wurde.

{ 
    var ss = SpreadsheetApp.getActive(); 
    var sheet = ss.getSheetByName("Profit Ratio"); 
    var valueToCheck = sheet.getRange("D7").getValue(); 
    var prop = PropertiesService.getDocumentProperties(); // Quick access to properties 


    if (valueToCheck > 3       // Between 3 and 10 
     && valueToCheck < 10 
     && !prop.getProperty("processed") { // Has not been dealt with 
    MailApp.sendEmail(
     "zak*******@gmail.com", 
     "Current Profit Ratio", 
     "Current Profit Ratio is 1:" + valueToCheck + " !!!"); 
    prop.setProperty("processed", true);  // Switch the flag so we don't send any more emails 
    } else if (valueToCheck <= 3) {    // You might want to add || value to check >= 10 here? 
    prop.setProperty("processed", false);  // Set property to false so that next time the value exceeds 3 we process it again 
    } 
} 
Verwandte Themen