用VBA声明一个相对于活动单元的范围
我需要声明一个相对于活动单元格的范围对象。 问题是,每次macros运行时,我想要select的行数和列数都是不同的。
例如,我有两个variables: numRows
和numCols
。
我想select一个范围,在左上angular的ActiveCell中有ActiveCell.Row + NumRows行和单元格ActiveCell.Column + NumCols在右下angular的单元格(然后我打算复制这个数据到一个数组加快我的macros观)。
任何build议如何做到这一点?
Range类有一个.Offset属性 ,它允许你做你需要的东西
ActiveCell.Offset(numRows, numCols)
跟进评论:
Dim newRange as Range Set newRange = Range(ActiveCell, ActiveCell.Offset(numRows, numCols))
你可以通过MsgBox newRange.Address
进行validation
这里是如何将这个范围分配给一个数组
喜欢这个:
Dim rng as Range Set rng = ActiveCell.Resize(numRows, numCols)
然后将该范围的内容读取到数组中:
Dim arr As Variant arr = rng.Value 'arr is now a two-dimensional array of size (numRows, numCols)
或者,select范围(我不认为这是你真正想要的,但你问这个问题)。
rng.Select