2014-09-30 3 views
0

follow script используется для получения даты с листа google и если эта дата равна сегодняшнему или завтра, генерирует автоматическое письмо на мой адрес, чтобы напомнить мне.Google Script отправляет электронное письмо с листа в определенную дату

function getVal() { 


var ss = SpreadsheetApp.getActiveSpreadsheet(), 
     sheet = ss.getActiveSheet(); 
    sheet.setActiveRange(sheet.getRange("A1")); 
    var range = sheet.getDataRange(), 
     formulas = range.getValues(); 
    var toDay = new Date(); 
    for (var r=0; r<formulas.length; r++) { 
     for (var c=0; c<formulas[r].length; c++) {  
      //var value = sheet.getRange(r,c).getValue(); 
      var value = range.getCell(r, c).getValue(); 
      Logger.log(value); 
      if (value == "AAAA") 
      { 
       var index = r+2; 
       value = sheet.getRange(index,c).getValue(); 
       while (value != "" || index >= formulas.length) 
       { 
        if (DateDiff.inDays(value,toDay)==1 || DateDiff.inDays(value,toDay)==0) 
        { 
         MailApp.sendEmail(myAdress,subject, text); 
        } 
        index = index + 3; 
        value = sheet.getRange(index,c).getValue(); 

       } 
      } 
     } 
    } 
} 

var DateDiff = {  
    inDays: function(d1, d2) { 
     var t2 = d2.getTime(); 
     var t1 = d1.getTime(); 

     return parseInt((t2-t1)/(24*3600*1000)); 
    }, 
    inWeeks: function(d1, d2) { 
     var t2 = d2.getTime(); 
     var t1 = d1.getTime(); 

     return parseInt((t2-t1)/(24*3600*1000*7)); 
    }, 
    inMonths: function(d1, d2) { 
     var d1Y = d1.getFullYear(); 
     var d2Y = d2.getFullYear(); 
     var d1M = d1.getMonth(); 
     var d2M = d2.getMonth(); 

     return (d2M+12*d2Y)-(d1M+12*d1Y); 
    }, 
    inYears: function(d1, d2) { 
     return d2.getFullYear()-d1.getFullYear(); 
    } 
} 

, когда я запустить скрипт, сбой в линии: значения переменного = range.getCell (г, с) .getValue();

У вас есть предложения, чтобы исправить эту ошибку?

благодаря

Марио

ответ

1

попытки изменить линию:

вар значение = формулы [г] [с]

он также должен сделать меньше запроса google-таблицу и работать быстрее.

+0

Я решил это с помощью строки: var value = range.getCell (r + 1, c + 1) .getValue(); – marionardo

Смежные вопросы