如何使用VBA代码模拟使用CTRL+A组合键选择区块?

16

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

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

是否有像ActiveCell.GetOuterRange.Select这样的Excel VBA方法?那就太好了。

1个回答

35

对于所有脏单元格,您可以执行以下操作:

ActiveSheet.UsedRange.Select

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

ActiveCell.CurrentRegion.Select

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接