2017-05-30 16 views
0

ワークシート上の範囲を読み取り、配列に配置します。Vba - 範囲配列からセルのアドレスを返す

Dim Arr() As Variant 
Arr = Range("B3:G11") 
Dim R As Long 
Dim C As Long 
For R = 1 To UBound(Arr, 1) 
    For C = 1 To UBound(Arr, 2) 
     Debug.Print Arr(R, C) 
    Next C 
Next R 

これはセルの値を返します。セルのアドレスを取得する方法はありますか?

ありがとうございます。 Debug.Print Arr(R, C)

Debug.Print Cells(R+2, C+1).Address(1,1) 

の代わりに

答えて

1

使用これを一つでも範囲の配列を埋めることができます:

Dim Arr() As Range 
Dim rng As Range 
ReDim Arr(1 To Range("B3:G11").Rows.Count, 1 To Range("B3:G11").Columns.Count) As Range 
For Each rng In Range("B3:G11") 
    Set Arr(rng.Row - 2, rng.Column - 1) = rng 
Next rng 
Dim R As Long 
Dim C As Long 
For R = 1 To UBound(Arr, 1) 
    For C = 1 To UBound(Arr, 2) 
     Debug.Print Arr(R, C).Address 
    Next C 
Next R 
+0

は、迅速な対応のためにUをとても感謝.. uはR + 2何を説明してくださいだろう、C + 1および(1,1)は、 – user3286479

+0

'Cells(Row、Column)'最初の左上をB3に設定しています。 RとCはそれぞれ1から始まるので、セルを移動する必要があります。これは、Range( "B3:G11")、セル(R、C)、Address(1,1) 'で行うこともできます。 '(1,1)'は参照を絶対的にし、 '(0,0)'は相対参照を返します。 –

関連する問題