Что такое код VBA для эмуляции выбора блока с помощью сочетания клавиш CTRL+A?

В более ранних версиях 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? Это было бы чудесно.


person oscilatingcretin    schedule 18.07.2012    source источник


Ответы (1)


Для всех грязных ячеек можно;

ActiveSheet.UsedRange.Select

Или для ячеек, окружающих текущую ячейку непрерывно, вы можете;

ActiveCell.CurrentRegion.Select
person Alex K.    schedule 18.07.2012