前提
スプレッドシートのD1セルは年、E1セルは月がそれぞれプルダウンで選択できるようになっています。
・B3:Bには年月日が入力されています。(2020/03/15)
・C3:Cには同行のB列セルに入力された年が表示されるよう下の数式が入っております。
=IF(B3="","",YEAR(VALUE(B3))) ※最終行までオートフィル
・D3:Dには同行のB列セルに入力された月が表示されるよう下の数式が入っております。
=IF(B3="","",MONTH(VALUE(B3))) ※最終行までオートフィル
実現したいこと
D1とE1の年月とC列D列に表示される年月が一致していたら
その行を削除させたい。
困っていること
エラーは出ませんが、動きません。
デバックしてみると
if(range == DEValues){
の行まではいけるのですが、
range.deleteRows(i);
に行かず、
for(var i = 3; i <= lastRow; i++){
に戻ってしまいます。
どこが違うのか、現時点で検討がつきません。
ご教示いただけると幸いです。
GAS
1function rowDelete(){ 2 var sh = SpreadsheetApp.openById('ID').getSheetByName("シート名"); 3 4 var lastRow = sh.getLastRow(); 5 var DEValues = sh.getRange('D1:E1').getValues(); 6 7 for(var i = 3; i <= lastRow; i++){ 8 var range = sh.getRange('C' + i + ':D' + i).getValues(); 9 10 if(range == DEValues){ 11 range.deleteRows(i); 12 13 } 14 } 15} 16
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。