Apps Script公式リファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

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();
}



関連記事

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

Latest post

Google Apps Scriptの障害時はIssueTrackerを見てみる - Incidents for Apps Script are reported on Issue Tracker

IssueTracker > Apps Script issues https://issuetracker.google.com/savedsearches/566234 Google Apps Scriptの障害時は IssueTracker に課題が上がっていることが...