前提・実現したいこと
スプレッド―シート中で、特定の行を削除したいです。
大まかな流れは以下のとおりです。
なお、I列には必ず「未完」か「完了」の文字が入っています。
-
I列に「未完」の文字があれば、D列にある日時と現在日時を比較し、現在日時より前であれば、I列に「完了」を挿入する。
-
I列に「完了」の文字があれば、D列にある日時と現在日時より30日前の日時と比較し、30日前よりも前であれば、その行を削除する。
1番目は問題なくできるのですが、2番目の行削除ができません。
どのようにすれば2番目が実行されるか、ご教示いただけないでしょうか。
発生している問題・エラーメッセージ
deleteRowが見つかりません
該当のソースコード
function(){ var Today = new Date(); var YMD = new Date(Today.getFullYear(),Today.getMonth(),Toay.getDate(),0,0,0);//秒数は0にする var LastMonth = new Date(Today.getFullYear(),Today.getMonth(),Today.getDate() -30,0,0,0);//30日前 var mySheet = SpreadsheetApp.getActiveSheet(); var dat = mySheet.getDataRange().getValues(); for(var i=1;i<dat.length;i++){ if(dat[i][8] == "未完"){ var TestDate = dat[i][3] if(TestDate < YMD){ dat[i][8] = '完了' mySheet.getRange(1,1,i,9).setValues(dat); } }else if(dat[i][8] == "完了"){ var TestDate = dat[i][3] if(TestDate < LastMonth){ mySheet.deleteRow(dat[i]) } } }
試したこと
Loggerでdat[i]を出力したところ、行ではなく、その行の値全部が出てきたので、ここが間違っているというのはわかるのですが、どう直したらいいのかわかりません…。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/17 08:43
2018/07/17 08:48
2018/08/08 05:53
2018/08/09 05:00
2018/08/09 07:50