2013-12-17 40 views
0

我有一個範圍爲myRng的形狀爲帶有1346個單元格的列向量。VBA Excel:獲取範圍對象的一部分

我想選擇的myRng第一100細胞和執行For each操作:

Dim cell As Range 
For each cell in myRng(1:100) 
    'Do something 
Next cell 

什麼是對myRng(1:100)得到這個操作工作一個適當的選擇嗎?

回答

1

Range屬性接受一個開始和結束單元格來限制它,所以你可以使用它。

你的情況,你會寫這樣的:

For Each cell In myRng.Range(myRng(1), myRng(100)) 
    ' Do something 
Next 
0

如果myRng是一列中,ssarabando的正常工作。更一般的方法是,如果myRng具有多個維度,則可以合併「偏移」和「調整大小」,或顯式聲明該列。例如:

Sub foo() 
    Dim rg As Range 
    Set rg = Range("a1:b1000") 
    Debug.Print Range(rg(1), rg(100)).Address '-->$A$1:$B$50 
    Debug.Print rg.Columns(1).Resize(rowsize:=100).Address '$A$1:$A$100 
    Debug.Print rg.Columns(2).Resize(rowsize:=100).Address '$B$1:$B$100 

    Debug.Print rg(, 1).Resize(rowsize:=100).Address '$A$1:$A$100 
    Debug.Print rg(, 2).Resize(rowsize:=100).Address '$B$1:$B$100 
End Sub