15

在早期版本的 Excel 中,在工作表中按 CTRL+A 会逐字选择所有单元格。在 Excel 2010(不确定 2007 或 2003)中,我注意到如果您在包含值的单元格块中按 CTRL+A,它似乎知道只选择该块中的单元格。例如,如果 A1:D10 范围内的所有单元格都包含值,并且当活动单元格在该范围内时按 CTRL+A,它将仅选择 A1:D10。如果再次按 CTRL+A,那么它才会真正选择工作表中的所有单元格。

所以我录制了一个宏来查看执行此操作时生成的宏代码,但它实际上是Range("A1:D10").Select在我按下 CTRL+A 时写入的。这是限制性的而不是动态的,因为现在我必须编写自己的逻辑来确定活动单元格周围的边界。像这样的方法并不难ActiveCell.End(xlDown),但我不想在这里重新发明轮子。

有没有类似的 Excel VBA 方法ActiveCell.GetOuterRange.Select?那样就好了。

4

1 回答 1

32

对于所有脏细胞,您都可以;

ActiveSheet.UsedRange.Select

或者对于以连续方式围绕当前单元格的单元格,您可以;

ActiveCell.CurrentRegion.Select
于 2012-07-18T12:58:03.680 回答