LANG SELRCT

コードを書く場所

2019年12月8日日曜日

スプレッドシートで空白行以外の値で列を上書きしたい


このように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();
}



関連記事

別のやり方でかいたコード
スプレッドシートの空白行を削除したい(アクティブセル以下の行を対象)

最新の投稿

JIRAにステータスを追加したい

JIRAにステータスを追加したときの備忘録です。 新規ステータスを作成する ワークフローでステータスを追加する ボードにステータスを配置する 1. 新規ステータスを作成する Jira settingsを開きます Issuesを選択します ...