我有一个范围为myRng
的列矢量形状,有1346个单元格。
我想选择100
的第一个myRng
单元格并执行For each
操作:
Dim cell As Range
For each cell in myRng(1:100)
'Do something
Next cell
myRng(1:100)
使这项操作正常运作的正确选择是什么?
答案 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