2017-08-03 6 views
2

私のGoogleスプレッドシートの最後の5行が空であるかどうかを確認する必要があります。最後の5行を確認する - Googleシートの空白行数を確認する

私はこのコードを持っている:

function addRow() { 
    var ss = SpreadsheetApp.getActive(); 

    var sh = ss.getActiveSheet(), lRow = sh.getLastRow(); 

    var lCol = sh.getLastColumn(), range = sh.getRange(lRow,1,1,lCol); 

    sh.insertRowsAfter(lRow, 10); 
    range.copyTo(sh.getRange(lRow+1, 1, 10, lCol), {contentsOnly:false}); 
} 

そして5つの最後の行が空でない場合は、「編集上の」機能を備えたこのコードを実行します。

答えて

1

sh.getMaxRows()メソッドを使用して、内容があるかどうかにかかわらず、シート内の行の総数を取得できます。次に、最大行から最後の行を引いて、最後に何行が空であるかを取得します。シートの編集時にこれを実行するには、トリガを「インストールする」必要があります。 [編集]メニューの[現在のプロジェクトのトリガ]をクリックし、新しいトリガを追加します。

function addRow() { 
    var howManyEmptyRows,sh,ss,lCol,lRow,range,totalRowsInSheet; 

    ss = SpreadsheetApp.getActive(); 
    sh = ss.getActiveSheet(); 
    lRow = sh.getLastRow(); 

    totalRowsInSheet = sh.getMaxRows(); 
    Logger.log('totalRowsInSheet: ' + totalRowsInSheet) 

    howManyEmptyRows = totalRowsInSheet - lRow; 
    Logger.log('howManyEmptyRows: ' + howManyEmptyRows) 

    lCol = sh.getLastColumn(); 
    range = sh.getRange(lRow,1,1,lCol); 

    if (howManyEmptyRows < 6) {//There are 5 or less empty rows at the end of the sheet 
    sh.insertRowsAfter(lRow, 10); 
    range.copyTo(sh.getRange(lRow+1, 1, 10, lCol), {contentsOnly:false}); 
    } 

} 
関連する問題