2017-11-15 19 views
0

スクリプトには非常に新しいです。これは私の2番目のスクリプトです。私は基本的にGoogleサンプルを修正しました。オブジェクト内にsetFullYear関数が見つかりません - Googleスクリプト

エラー: TypeError:オブジェクトにsetFullYear関数が見つかりません。 (行22、ファイル "コード")。

電子メールが送信されるため、スクリプトは完了したようですが、なぜエラーが発生しているのかを知りたいのですが、修正するために何ができるのですか。
私は、スクリプトが日付形式が気に入らないと仮定しています。

問題のコード:
var dateToSend = row[0]; dateToSend = dateToSend.setFullYear(0000);

row[0]はそれの日付でGoogleスプレッドシート上のセルを指します。

完全なスクリプトは、それは場合に役立ちます:あなたはそれににsetFullYear機能にアクセスできるように、行と[0]のデータを日付オブジェクトを作成する必要が

var today = new Date() 
today.setHours(0,0,0,0) 
today = today.setFullYear(0000) // Set year as 0, so recurs every year 


var EMAIL_SENT = "EMAIL_SENT"; 

function sendEmailsByDate() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var dataRange = sheet.getRange('A2:E') 
    var data = dataRange.getValues(); 
    for (var i = 0; i < data.length; ++i) { 
    var row = data[i]; 
    var dateToSend = row[0]; 
    dateToSend = dateToSend.setFullYear(0000); // This is the problematic line 22 
    var emailAddress = row[1];     
    var subject = row[2];     
    var message = row[3];      
    var emailSent = row[4];      
    if ((emailSent != EMAIL_SENT) && (today == dateToSend)) { 
     MailApp.sendEmail(emailAddress, subject, message); 
     sheet.getRange(startRow + i, 5).setValue(EMAIL_SENT); 
     SpreadsheetApp.flush(); 

    } 
    } 
} 
+1

おそらく、JSのDateオブジェクトとしてセルの値を解析する必要があります – Satyajit

答えて

0

。同様に:

for (var i = 0; i < data.length; ++i) { 
    var row = data[i]; 
    var dateToSend = new Date(row[0]); 
関連する問題