2017-05-30 58 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 

這將返回單元格的值。有沒有辦法獲得細胞的地址?!

預先感謝您。

回答

1

使用此代替Debug.Print Arr(R, C)

Debug.Print Cells(R+2, C+1).Address(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

感謝ü這麼多的快速反應..ü?請解釋什麼呢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)'將返回一個相對參考。 –

相關問題