2017-06-13 1 views
0

電子メールが2回送信されないようにしたいと思います。スクリプト自体が動作している、しかし、の挿入:処理する行の数

sheet.getRange(startRow + i, 6).setValue(EMAIL_SENT);

は動作しません、まだそれは40

を行にランダムな値を追加して、誰かが私が問題を把握助けてもらえますか?すでにおかげさまでありがとうございました!

function sendEmails() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var range = sheet.getRange(1, 2); 
    var subject = range.getValues(); 
    var range = sheet.getRange(1, 9); 
    var numRows = range.getValues(); 
    var startRow = 4;     
    var dataRange = sheet.getRange(startRow, 1, numRows,9) 
    var data = dataRange.getValues(); 
    var EMAIL_SENT = "EMAIL_SENT"; 
    for (i in data) { 
     var row = data[i]; 
     var emailAddress = row[0];  
     var message = row[8]; 
     var emailSent = row[5]; 
     if (emailSent != EMAIL_SENT) { 
      MailApp.sendEmail(emailAddress, subject, message,{noReply: true}); 
      sheet.getRange(startRow + i, 6).setValue(EMAIL_SENT); 
     } 
    } 
} 
+0

私は疑う 'startRow属性+ i'「あなたに40を与え、おそらく "0" である私のテキスト文字列とテキスト文字列4を組み合わせることに評価しています"多分これらの数を強制的に試してみてください:' parseInt(startRow)+ parseInt(i) ' –

答えて

0

短い答え

の代わりに使用してfor(i in data){...}使用form(var i = 0;i < data.lenght;i++) {...}

説明

for (variable in object)は各反復に異なるプロパティ名を割り当てますが、何が必要なのは、使用するデータのインデックスであります行インデックスを計算します。

リファレンス