前提・実現したいこと
スプレッドシートのD列に値が入力されていて、かつE列に何らかの値が入力されている場合、E列の値を削除する
発生している問題・エラーメッセージ
Google Apps Scriptで指定時刻にメールを送信するシステムを作ってみた
こちらに掲載の自動メール送信のコードをコピペし、
追加でsend_timeが空欄かつsent_timeに日付が入力されている場合のみsent_timeを削除するプログラムを書きました。(elseif文)
しかし下記の通りD列の記述においてエラーが発生しております。
15:26:11 エラー
TypeError: value[3].isBlank is not a function
(匿名) @ コード.gs:14
calledByCron @ コード.gs:8
該当のソースコード
GAS
1function calledByCron() { 2 var sheet = SpreadsheetApp.getActiveSheet(); // シートの取得 3 var startRows = 2; // 開始行数 4 var sheetData = sheet.getSheetValues(startRows, 1, sheet.getLastRow(), sheet.getLastColumn()); // シートのデータを取得(2次元配列) 5 var dtLimit = new Date(); // 現在時刻を取得 6 7 // シートの各行ごとにデータを取り出す 8 sheetData.forEach(function(value, index) { 9 // 送信完了していない、かつ送信予定日時が現在時刻より前ならば、メールを送信する 10 if (!value[4] && (new Date(value[3])).getTime() < dtLimit.getTime()) { 11 MailApp.sendEmail(value[0], value[1], value[2]); // メールを送信する 12 sheet.getRange(startRows + index, 4 + 1).setValue(dtLimit); // 送信完了日時をシートに書く 13 } 14 // D列に日時(値)が入力されておらず、かつE列に日時(何らかの値)が入力されている場合、E列の値を削除する(問題部分) 15 else if ( value[3].isBlank() && !value[4].isBlank()) { 16 sheet.getRange(startRows + index, 4 + 1).clearContent(); 17 } 18 }); 19}
どなたか解決方法をご教示ください。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/23 02:12
2021/04/23 02:58
2021/04/23 03:05