前提・実現したいこと
特定列の情報を基に情報を取得し、メールを送信したい。
発生している問題・エラーメッセージ
- 情報の取得が最終行まで実施されない。
→L147まであるのにL106で止まってしまいます。行の最初は44行目です。
- ※追記
エラーメッセージが出ているわけではありません。「実行」すると「実行完了」が表示されます。
該当のソースコード
function mailAlerts() {
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var columnsVals = bk.getRange("L:L").getValues();
var last_row = columnsVals.filter(String).length +1 ;
var begin_row = 44;
var today = new Date();
var tgdata = new Date();
tgdata.setDate(today.getDate()+1);
var formatDate = Utilities.formatDate(today,"JST","yyyy/MM/dd");
tgdata=Utilities.formatDate(tgdata,"JST","yyyy/MM/dd");
for(var i = begin_row; i <= last_row; i++) {
var sell1 = "L"+i; Logger.log(sell1); var value1 = sh.getRange(sell1).getValue(); var value1 = Utilities.formatDate(value1,"JST","yyyy/MM/dd"); Logger.log(value1); //状況 var sell2 = "M"+i; var value2 = sh.getRange(sell2).getValue(); if(tgdata >= value1 && value2 == "継続中"){ //依頼支店 var sell3 = "C"+i; var value3 = sh.getRange(sell3).getValue(); //プロジェクト var sell5 = "E"+i; var value5 = sh.getRange(sell5).getValue(); //PJ Number var sell6 = "B"+i; var value6 = sh.getRange(sell6).getValue(); switch(true){ case tgdata == value1: var mes_subject = '【納期アラート】本日が納期予定前日です。: ' + value6 + value5; break case formatDate == value1: var mes_subject = '【納期アラート】納期予定日です。: ' + value6 + value5; break case formatDate > value1: var mes_subject = '【納期アラート】納期予定日を過ぎています。: ' + value6 + value5; break } Logger.log("mes_subject " + mes_subject); var mes = '■依頼支店 : ' + value3 + '\n■PJ number: '+ value6 + '\n■プロジェクト: '+ value5 + '\n■状 況: '+ value2 + '\n■納 期: '+ value1+ '\n■メッセージ' + '\n納期を確認してください。' + '\n※このメールは、機械的に納期予定日と本日を比較したアラートです。行き違いで納品済のときは、データを更新してください。' + GmailApp.sendEmail('メールアドレス',mes_subject ,mes); Logger.log("適用 "+value1+" "+value2+" "+value3+" "+value5+" "+value6); }
}
}
補足情報
非表示行も存在しますが、その情報は取得しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/26 03:36