PCメモ

Excelを中心とした業務改善の記録

最終行の取得

データの最終行を取得する。

  

Sub Macro1 ()

Dim LastRow As Integer

LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

End Sub

 

Excelの最終行からEnd(xlUp)でデータ最終行まで行って行番号を取得する。

変数LastRowに格納。

 

f:id:abv72:20200820225833p:plain

 

解説

  Sheet1の1行目の最終行番号を取得する。

 

LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

 

Sheet1を指定。

Sheets("Sheet1")

 

Rows.Count はシートの最終行。

1列目の最終行(1048576行目)まで移動。

対象の列を変更する場合は、Rows.Countの後ろの数字を対象列番号に変更する。

.Cells(Rows.Count, 1)

 

Endモード。(Ctrl + 矢印で移動する状態)

Rowで行番号取得。

.End(xlUp).Row

注意点

最終行を下から数えに行く為、途中にデータが入力されていた場合は、

その行が最終行となってしまう。

 

4行目を最終行としたいが、7行目に入力されていたため、最終行が7となってしまう。

データに空白がないことが前提。

 

 f:id:abv72:20200909231207p:plain

 

 

 

上から数える方法

上から数える場合はxlDownを使用する。

Sheets("Sheet1").Range("A1").End(xlDown).Row

A1セルからエンドモードで下に数えていく。

※データが一件もない場合、途中で空白がある場合はエラーになる。

変数の変更

一度代入した後に、同じ変数に代入しなおすと、格納されている数値が変更される。

最終行が17だった場合は以下のように変更されていく。

LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row  '→17
LastRow = LastRow - 2 '→15
LastRow = LastRow / 5 '→3