Senden Sie E-Mail, wenn value-änderungen in der Google-Tabelle

Ich versuche herauszufinden, ist, wie die folgenden in Google Spreadsheet.

  1. E-Mail senden, wenn ein Wert geändert wird, in eine Zelle. (Wert = Abgeschlossen).
  2. Kompilieren, dass Zeilen, die Daten in der E-Mail. Siehe format im code unten.
  3. Auffordern Benutzer zur Bestätigung der info.
  4. Wenn JA, senden Sie E-Mail für aktive Benutzer, sowie die Voreinstellung der Benutzer im code unten.
  5. Dies ist optional: Update-Blatt in der Zeile auf Spalte (P) 16 mit E-Mail Gesendet + Zeitstempel.

Hallo Serge,

Versuchen zu implementieren Sie den code, den Sie, aber ich könnte nicht machen, Kopf oder Zahl, was zu ändern, um zu passen, was ich brauchte getan.

Lassen Sie mich das mal erklären mit unter-workflow.

Senden Sie eine E-Mail, wenn ändert sich der Wert für die Spalte K.

Teilweise Beispielcode zu beobachten, Spalte K

var sheetNameToWatch = "Active Discs";
var columnNumberToWatch = 14; //column A = 1, B = 2, etc.
var valueToWatch1 = "Completed";
var valueToWatch2 = "in progress";

try{
var ss = e.source;
var sheet = ss.getActiveSheet();
var range = e.range;

if (sheet.getName() == sheetNameToWatch && range.columnStart == 
columnNumberToWatch && e.value == valueToWatch)

var confirm = Browser.msgBox
('Email will be sent Team X. Do you want to sent this email?', Browser.Buttons.YES_NO); 
if(confirm!='yes'){return};
//if user click NO then exit the function, else move data

Die E-Mail wird enthalten den angegebenen Werten der jeweiligen Zeile. Ex. Die Werte in den Spalten A, B, C, D, E, F, G, H, I, J.

//Email to be sent if **Inprogess** value is a match:

Var sendEmailTeamA(){

var ProjectName = e.values[0];
var ProjectId = e.values[1];
var ProjectManager = e.values[3];
var Sales = e.values[4];
var Client = e.values[5];
var DiscType = e.values[6];
var DVDFlash = e.values[7];
var Phase = e.values[8];
var Encryption = e.values[9];
var Qty = e.values[11];
var DueDate = e.values[12];
var SpecialInstructions = e.values[13];
var emailAddress = '';
var subject = "DVD Request - " + ProjectName + " " + ProjectId;
var emailBody = "Hi Venue Colombo Team,"
  "\n\nThe following data room(s) will need a disc creation. Please begin bulk save data room and create ISO to upload to the FTP site: " +
  "\nProject Name: " + ProjectName +
  "\nProject ID: " + ProjectId +
  "\nProject Manager: " + ProjectManager +
  "\nPhase: " + Phase +
  "\nDisc Type: " + DiscType +
  "\nEncryption: " + Encryption +
  "\nQuantity: " + Qty +
  "\nClient Due Date: " + DueDate +
  "\nSpecialInstructions: " + SpecialInstructions;
var htmlBody = "Thank you for your <b>Club Ambassador Program</b> report submitted on <i>" + timestamp +
  "</i><br/>&nbsp;<br/>Person Show Submitted this email: " +
  "<br/><font color=\"red\">Your Name:</font> " + activeSessionuser +
  "<br/>Your Email: " + toAddress;
var optAdvancedArgs = {name: "Club Ambassador Program", htmlBody: htmlBody};
MailApp.sendEmail(emailAddress, subject, emailBody, optAdvancedArgs);
}

//Email to be sent if **“Completed”** value is a match:

Var sendEmailTeamB() {

var ProjectName = e.values[0];
var ProjectId = e.values[1];
var ProjectManager = e.values[3];
var Sales = e.values[4];
var Client = e.values[5];
var DiscType = e.values[6];
var DVDFlash = e.values[7];
var Phase = e.values[8];
var Encryption = e.values[9];
var Qty = e.values[11];
var DueDate = e.values[12];
var SpecialInstructions = e.values[13];
var emailAddress = '';
var subject = "DVD Request - " + ProjectName + " " + ProjectId;
var emailBody = "Hi Venue Colombo Team,"
  "\n\nThe following data room(s) will need a disc creation. Please begin bulk save data room and create ISO to upload to the FTP site: " +
  "\nProject Name: " + ProjectName +
  "\nProject ID: " + ProjectId +
  "\nProject Manager: " + ProjectManager +
  "\nPhase: " + Phase +
  "\nDisc Type: " + DiscType +
  "\nEncryption: " + Encryption +
  "\nQuantity: " + Qty +
  "\nClient Due Date: " + DueDate +
  "\nSpecialInstructions: " + SpecialInstructions;
var htmlBody = "Thank you for your <b>Club Ambassador Program</b> report submitted on <i>" + timestamp +
  "</i><br/>&nbsp;<br/>Person Show Submitted this email: " +
  "<br/><font color=\"red\">Your Name:</font> " + activeSessionuser +
  "<br/>Your Email: " + toAddress;
var optAdvancedArgs = {name: "Club Ambassador Program", htmlBody: htmlBody};
MailApp.sendEmail(emailAddress, subject, emailBody, optAdvancedArgs);
}

Dieser workflow gilt für die Spalten K, L, M, N, O. E-Mail wird an die voreingestellte E-Mail-Adressen im code. Ich hoffe das erklärt es ein bisschen besser. Ich danke Ihnen nochmals für Ihre Zeit und Hilfe.

  • Ich würde gerne, um Ihnen einen vollständigen code, aber es ist definitiv zu viel Arbeit, eine Tabelle zu erstellen von Grund auf mit allen notwendigen Werte, um das Ergebnis testen... könnte man vielleicht teilen SS, auf die ich(wir) testen kann code ?
  • Hier der eigentliche test Blatt. docs.google.com/spreadsheet/...
  • Ich werde wieder online sein am Sonntag, um auf diese Arbeit mit Ihnen.
InformationsquelleAutor WallyG | 2014-03-13
Schreibe einen Kommentar