このように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();
}
|
関連記事
別のやり方でかいたコード
スプレッドシートの空白行を削除したい(アクティブセル以下の行を対象)

