如何从活动单元格中选择未知范围?

时间:2012-12-06 21:06:23

标签: excel vba select dynamic range

我有一个包含数据块和中间空行的电子表格。这些街区的大小各不相同。我有一个公式,自动填充原始数据,然后将其复制到其他空行,直到它到达下一个块。如何获取它选择下一个数据块以便我的循环可以工作,因为块的大小总是在变化?理想的是某种当前区域属性排除活动单元格后面的数据,因为它的当前状态中的循环在每次迭代结束时将活动单元格作为新块中的第一个单元格。

1 个答案:

答案 0 :(得分:0)

每当我必须循环需要从一个区域移动到另一个区域的东西时,我最终使用Offset的组合(如在Range(myRange).Offset(1,0)中)并且通常是.End修改以确保我总是在范围的最后。作为一个例子(伪代码)。

Dim lastCell As Range
Dim neededCell As Range

Set lastCell = ActiveRange.End(xlDown) 'picks the last cell down
Set neededCell = lastCell.Offset(2, 0) returns the cell two rows down from the last cell in above range.

警告,我正在做这件事,可能需要进行一些调整才能实际工作......另外,如果你需要朝那些方向前进,还有xlLeft,xlRight和clUP。

此外,如果您需要选择新范围,只需按偏移选择范围即可。我的代码可能有点脏(仍然是新的),但这应该有效。

Dim bigRange as Range
Set bigRange = ActiveSheet.Range(neededCell.Address & ":" & _
    neededCell.Offset(20, 20).Address)

如果你从“D5”的needCell开始,那应该返回“D5:X25”的范围