2013-12-17 38 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