2016-08-10 1 views
0

VBAは非常に新しく、列の要素の長さを未来。VBA - 長さが将来変更される可能性があると仮定して、列内の要素の数を確認します。

テーブルの開始から1行の特定の文字列までの行数を確認するにはどうすればよいですか?つまり、コード内のループ内の繰り返しの回数として要素の数を使用できるようにしたいと考えています。

ありがとうございました。

答えて

0

ここでは、Range.End()メソッドを使用して列の終わりを動的に決定する例を示します。この特定の実装では、列に2行以上の空白が含まれている必要があることに注意してください。End関数は最初の空のセルが見つかるまで機能が停止します。この列に値を追加してコードを再実行する場合は、イミディエイトコンソールに表示される値が多く表示されます。

実際に列の要素数を知る必要はありませんが、そうした場合はRange.Rows.Count機能を使用できます。ここで

enter image description here

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 
0

私はあなたの商品リストは、その後、私は(私は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 
関連する問題