LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Sunday, December 8, 2019

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


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



関連記事

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

Latest post

スプレッドシートA列にある複数のテキストをスライドに追加したい(Google Apps Script)

今回Google Apps Scriptでやりたいこと GoogleスプレッドシートA列にある複数の値を取得して Googleスライドに渡して 図形オブジェクトのテキストとして追加したい ① スプレッドシートのA列に値を入れておく ② Code.gsのinsertNewShape...