Articles

Last Used Row (Last Used Column) in Excel with Formula (with VBA)

Posted on

Excelで指定した列の最後の行を取得するには、VBAのユーザー定義関数を使うと簡単にできます。

lastRow.vb

Visual Basic

r r

1
2
3
4
5
Function LastRow(wsName As String, Optional columnToCheck As Long = 1) As Long
Dim ws As Worksheet
Set ws = Worksheets(wsName)
LastRow = ws.Cells(ws.Rows.Count, columnToCheck).End(xlUp).
End Function

他にも2つの数式があり、数値か文字列かに応じて、指定された行で最後に使用されたセルを取得します。

計算式です。vb

ビジュアルベーシック

1
2

=IFERROR(MATCH(E1+99,A:
=IFERROR(MATCH(“zzz”,A:A),0)

最初のものは最後に使用された数字の行を取得し、2番目のものは最後に使用された非数字の行を返しています。

計算式です。vb

ビジュアルベーシック

1
=MAX(IFERROR(MATCH(E1+99,A:IFERROR(MATCH(“zzz”,A:A),0))

しかし、小さな問題があります。最後のセルがエラーの場合、MAX()式は最後のセルではなく、そのセルを返します。

従って、最後の「もの」に対して常に機能する4つの究極の数式は次のとおりです。

行/列を取得するには:

A列の最終行

LastRow.vb

ビジュアルベーシック

1
=IFERROR(LOOKUP(2,1/(not(isblank(a:A)),ROW(A:A)),0)

最初の行の最後のカラム

LastColumn.vb

ビジュアルベーシック

1
=IFERROR(LOOKUP(2,1/(not(isblank(1:1)),COLUMN(1:1)),0)

値を取得するには

A列の最終行の値

LastUsedRow.vb

ビジュアルベーシック

1
=LOOKUP(2,1/(not(isblank(a:A)),A:A)

最初の行の最後のカラム値

LastColumnValue.vb

ビジュアルベーシック

1
=LOOKUP(2,1/(not(isblank(1:1))),1:1)

GitHubの最後のアレコレ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です