GASの空白行削除について
Q&A
Closed
解決したいこと
GASで、グーグルフォームとスプレッドシートを連携して、計算するプログラムを組んでいます。
スプレッドシートで、送られてきたフォームの回答を一回消したら、次から送られて来る回答が何行か(前消した行数だけ)開けて追加されてしまうので、上から詰めて表示できるように、空白の行を削除するコードを書いています。
発生している問題・エラー
エラーメッセージは出てないのですが、実行完了と表示されたあとに、確認しても、空白の行が残ったままになってしまいます。
該当するソースコード
for(var i=1; i<=s1.getLastRow; i++){
const kesuyatu = s1.getRange(i,1);
if(kesuyatu.isBlank()){
s1.deleteRow(i);
}
}
自分で試したこと
色々なサイトを確認して、最後にi -= 1をつけたり、上のコードはとあるコードの一部だったので、新しいプロジェクトでこのコードだけで実行してみたり、フォームの回答のページがいじれないのかとも思って、コピーしたページで同じコードを実行したりしました。↓
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const s1 = ss.getSheetByName("フォームの回答 1")
const sn = ss.getSheetByName("回答確認")
var s1lastrow = s1.getLastRow
var s1lastcolumn = s1.getLastColumn
var s1copy = s1.getRange(1,1,s1lastrow(),s1lastcolumn()).getValues();
sn.getRange(1,1,s1lastrow(),s1lastcolumn()).setValues(s1copy);
var lastRow = sn.getLastRow
for(var i=1; i<=lastRow; i++){
var kesuyatu = sn.getRange(i,1);
if(kesuyatu.isBlank()){
sn.deleteRow(i);
}
}
}