将偏移行添加到给定的范围。 Excel VBA
我有一个variables,在开始时被设置为一个给定的范围。
我想有一个循环语句,将从给定范围的末尾开始下一行,并将其添加到该范围。
即:
myRows = Range(1:10) For Each cell in myRows If cell.Value > 2048 Then myRows = myRows + myRows.Offset(1, 0) ---This is where i need help---
基本上我怎么自动增量范围每次循环运行。
编辑:
另外我将如何添加到范围的前面。 以及从范围的背面带走。
即
范围(1:10)不隐藏范围(11:20)隐藏
我想添加一个隐藏的范围,从隐藏的范围,因此它:
范围(1:11)不隐藏范围(12:20)隐藏
您将myRows
作为Variant
数据types。 您需要将其声明为Range
对象。
Dim myRows as Range
那么你将需要使用Set
关键字来分配一个Range
对象)。
Set myRows = Range("1:10")
然后,使用范围.Resize
方法:
Set myRows = myRows.Resize(myRows.Rows.Count+1, myRows.Columns.Count)
否则,如果你需要维护myRows
types变种,让我知道,我可以重新工作。
你也可以使用
Set myRows = Union(myRows, myRows.Offset(1, 0))
编辑:
你自找的!
从通用范围中删除一行
Set myRows = RemoveRowFromRange(myRows, 10) ... Function RemoveRowFromRange(ByVal Range As Range, row_number As Long) As Range With Range.Worksheet Select Case row_number Case 1 Set Range = Intersect(Range, .Range(.Rows(2), .Rows(.Rows.Count))) Case .Rows.Count Set Range = Intersect(Range, .Range(.Rows(1), .Rows(.Rows.Count - 1))) Case Else Set Range = Union(Intersect(Range, .Range(.Rows(1), .Rows(row_number - 1))), Intersect(Range, .Range(.Rows(row_number + 1), .Rows(.Rows.Count)))) End Select End With Set RemoveRowFromRange = Range End Function