VBAは非常に新しく、列の要素の長さを未来。VBA - 長さが将来変更される可能性があると仮定して、列内の要素の数を確認します。
テーブルの開始から1行の特定の文字列までの行数を確認するにはどうすればよいですか?つまり、コード内のループ内の繰り返しの回数として要素の数を使用できるようにしたいと考えています。
ありがとうございました。
VBAは非常に新しく、列の要素の長さを未来。VBA - 長さが将来変更される可能性があると仮定して、列内の要素の数を確認します。
テーブルの開始から1行の特定の文字列までの行数を確認するにはどうすればよいですか?つまり、コード内のループ内の繰り返しの回数として要素の数を使用できるようにしたいと考えています。
ありがとうございました。
ここでは、Range.End()
メソッドを使用して列の終わりを動的に決定する例を示します。この特定の実装では、列に2行以上の空白が含まれている必要があることに注意してください。End
関数は最初の空のセルが見つかるまで機能が停止します。この列に値を追加してコードを再実行する場合は、イミディエイトコンソールに表示される値が多く表示されます。
実際に列の要素数を知る必要はありませんが、そうした場合はRange.Rows.Count
機能を使用できます。ここで
Sub iterateCol()
Dim w As Worksheet
Set w = ActiveSheet
' first cell in the column
Dim rngColStart As Range
Set rngColStart = w.[a1]
' this will be the range that contains all cells in the column
Dim rngCol As Range
Set rngCol = w.Range(rngColStart, rngColStart.End(xlDown))
' number of rows in the column
Debug.Print rngCol.Rows.Count
' iterate through all the cells in the column
Dim c As Range
For Each c In rngCol
Debug.Print c ' prints cell to immediate window
Next c
End Sub
私はあなたの商品リストは、その後、私は(私はMyString
と呼ばれる)あなたの特定の文字列がどこにあるセルを探すためにRange.Find
を使用し、2行目に開始して、あなたが列ヘッダを持っていると仮定行番号を保持し、最後に必要な反復回数を計算します(最後のマイナス最初+ 1)。
Sub FindNumberOfRowsToLoopThrough()
Dim MyString As String
Dim FirstRow As Long, LastRow As Long
Dim NumberOfIteration As Long
MyString = "Here it is"
FirstRow = 2
LastRow = Range("A:A").Find(what:=MyString, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False).Row
NumberOfIteration = LastRow - FirstRow + 1
MsgBox NumberOfIteration
End Sub