列の長さを教えて、列の最初のレコードを与える簡単な関数を書きたいと思います。したがって、私は次のようなものを書きます...
Public Function getColumnLen(firstCell As Range) As Long
Dim lastRow As Long
lastRow = Range(firstCell.Address).End(xlDown).Row
getColumnLen = lastRow - firstCell.Row + 1
End Function
これで、プロジェクトに「A」と「B」の2つのワークシートがあり、VBAでは次のように呼び出します。
Dim colLen as Long
colLen = getColumnLen(Worksheets("A").Range("A1"))
A1以降のデータの高さを知りたいとき。結果の値は、colLen
シート「A」がアクティブであるか「B」がアクティブであるかによって異なります。getColumnLen
関数でfirstCell
は、それが「A」シートの一部であることを覚えていますが、スクロールはアクティブなシートで行われます。firstCell
各呼び出しでアクティブ化する以外に、アクティブなシートに関係なく、これで正しい結果が得られるようにする方法はありますか?