什么是模拟使用CTRL + A快捷方式选择块的VBA代码?

osc*_*tin 13 excel vba range excel-vba excel-2010

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

Ale*_* K. 28

对于所有脏细胞,你可以;

ActiveSheet.UsedRange.Select
Run Code Online (Sandbox Code Playgroud)

或者对于当前单元格周围的单元格,您可以;

ActiveCell.CurrentRegion.Select
Run Code Online (Sandbox Code Playgroud)