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)