LANG SELRCT

コードを書く場所についてはこちら

2019年2月21日木曜日

シートの特定の列で値が入っていない範囲の最終行を見つけたい


こういうシートがあって
kanaの列でデータが入っていない範囲を取得したい


コピペ用データ

hirakana
あいうえお
かきくけこ
さしすせそ
たちつてとタチツテト
なにぬねのナニヌネノ



コード.gs
function getLastBlank() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow();
  var startRow = 2;
  var col = 2;
  var values = sheet.getRange(startRow, col, lastRow, 1).getValues();
  Logger.log(values);
  var lastBlank = 0;
  for(var i = 0; i < values.length; i++) {
    var value = values[i][0];
    if(value !== '') {
      lastBlank = i + 1;
      break;
    }
  }
  Logger.log(lastBlank);
  return lastBlank;
}
意訳
この機能がやること
今開いているシートを取得する
データが入っている最終行を取得する
開始行を指定する
対象の列番号を指定する
対象の列で開始行から最終行までの値を取得して
ログに出す
最後の空白行は0にしておく
値の数だけ繰り返す
値を1つずつ取得して
もし空でなければ
最後の空白行は配列の要素番号+1 配列は0始まりでシートは1始まりなので+1
for文から抜ける


それをログに出して
そして返す



実行結果

getLastBlankを実行するとこのようなログが出ます
kanaの列で値が入っていない範囲の最終行は4行目