2016-05-14 4 views
0

n00b codeur ici, 0 formation professionnelle ou à l'école, alors ayez pitié. J'essaie de créer deux feuilles de calcul: l'une suit la fréquentation des élèves à l'école, l'autre suit leur présence à la pratique de la piste. Le but est d'écrire une fonction, que je peux configurer comme un bouton, que je peux cliquer pour envoyer automatiquement des emails à plusieurs personnes si l'étudiant est présent à l'école mais est absent pour le sport sans être excusé.En utilisant Google Scripts, dans une boucle "for" et une instruction "if", je veux enregistrer l'index des valeurs à utiliser plus tard sur

À l'heure actuelle, tout fonctionne plutôt bien, mais j'ai un problème. J'ai une colonne qui va lire "Bon" ou "Mauvais" selon que l'étudiant répond à la condition ci-dessus. La fonction les transforme en un tableau. Je voudrais utiliser l'index des "Bad" pour trouver les adresses e-mail nécessaires, qui sont stockées au même point d'index dans un autre tableau que je fais de la feuille de calcul. Je ne suis pas sûr de savoir comment enregistrer ce point d'index et l'utiliser pour référencer les adresses e-mail. Code ci-dessous.

function sendEmailsMonday() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("TrackAttendance"); 
    var dataRange = sheet.getRange("D2:D30"); 
    var data = dataRange.getValues();// Gets array of "Good" and "Bad" 
    for (i in data) { 
    if(i = "Bad") { 
     var place = data.indexOf(i); 
     var dataRange2 = sheet.getRange("M2:M30");// Gets array of email addresses 
     var data2 = dataRange2.getValues(); 
     var emailAddress = data2[place]; 
     var message = "This is an automated email informing you that your child/advisee ____ was present at school today, but missed Track without being excused. Feel free to email Mr. @ with any questions."; 
     var subject = "___ missed Track Practice"; 
     MailApp.sendEmail(emailAddress, subject, message); 
     return; 
    } 
    } 
} 

Ainsi, le problème vient avec les lignes d'index. Si je me débarrasser de

var place = data.indexOf(i); 

et remplacer

var emailAddress = data[place]; 

avec

var emailAddress = data[28]; 

ou tout autre numéro, il saisira l'adresse e-mail et l'envoyer. Mais alors cela n'a rien à voir avec les valeurs de l'autre colonne.

On dirait que cela devrait être une solution facile, mais je suis mauvais à cela. Halp.

Répondre

0

Très en retard en réponse maintenant. Je pense que vous êtes presque là.

Votre instruction IF doit lire:

if(i == "Bad") { 

Et puis remplacer 'lieu' avec i:

var emailAddress = data2[i]; 

Il devrait fonctionner comme prévu maintenant.