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

问题描述 投票:0回答:2
在早期版本的 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方法吗?那就太好了。

excel range excel-2010 vba
2个回答
35
投票
对于所有脏细胞都可以;

ActiveSheet.UsedRange.Select

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

ActiveCell.CurrentRegion.Select
    

0
投票
activesheet.usedrange 真的很有帮助。有谁知道如何使用它但保留列标题?

© www.soinside.com 2019 - 2024. All rights reserved.