1

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

4

1 回答 1

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”的范围

于 2012-12-06T21:12:05.050 回答