在早期版本的 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
?那样就好了。