このようにA列に空白セルを含む行があって
空白セルの行を削除して上に詰めたい
ということをやりたくて書いたコードです。
コード.gs
function setArrayToRange() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = sheet.getActiveRange().getRow(); var lastRow = sheet.getLastRow(); var numRows = (lastRow - startRow) + 1; var rangeValues = getRangeValues(sheet, startRow, numRows); clearTargetRange(sheet, startRow, numRows); var arrays = removeBlankRows(rangeValues) var range = sheet.getRange(startRow, 1, arrays.length, 1); range.setValues(arrays); } function removeBlankRows(rangeValues) { var arrays = []; for(var i = 0; i < rangeValues.length; i++) { var value = rangeValues[i][0]; if(value.length > 0) { arrays.push([value]); } } return arrays; } function getRangeValues(sheet, startRow, numRows) { var range = sheet.getRange(startRow, 1, numRows, 1); var values = range.getValues(); return values; } function clearTargetRange(sheet, startRow, numRows) { var range = sheet.getRange(startRow, 1, numRows, 1); range.clear(); } |
関連記事
別のやり方でかいたコード
スプレッドシートの空白行を削除したい(アクティブセル以下の行を対象)