VBA Excel:获取范围对象的一部分

时间:2013-12-17 10:55:25

标签: excel excel-vba vba

我有一个范围为myRng的列矢量形状,有1346个单元格。

我想选择100的第一个myRng单元格并执行For each操作:

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

myRng(1:100)使这项操作正常运作的正确选择是什么?

2 个答案:

答案 0 :(得分:1)

Range属性接受限制它的开始和结束单元格,因此您可以使用它。

在你的情况下,你会这样写:

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

答案 1 :(得分:0)

如果myRng是单列,则ssarabando将起作用。如果myRng具有多个维度,则更通用的方法是组合Offset和Resize,或者显式声明列。例如:

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