2012-07-18 15 views
10

En versiones anteriores de Excel, presionar CTRL + A en una hoja de cálculo literalmente seleccionaría todas las celdas. En Excel 2010 (no estoy seguro acerca de 2007 o 2003), he notado que si presiona CTRL + A dentro de un bloque de celdas que contienen valores, parece saber seleccionar solo las celdas en ese bloque. Por ejemplo, si todas las celdas en el rango A1: D10 contienen valores y pulsa CTRL + A mientras la celda activa está en ese rango, solo seleccionará A1: D10. Si presiona CTRL + A nuevamente, solo entonces seleccionará todas las celdas en la hoja de trabajo.¿Cuál es el código de VBA que se debe emular al seleccionar un bloque con el atajo CTRL + A?

Así que grabé una macro para ver qué código de macro se generaba cuando hago esto, pero en realidad escribe Range("A1:D10").Select cuando presiono CTRL + A. Esto es limitante y no dinámico porque ahora tengo que escribir mi propia lógica para determinar los límites alrededor de la celda activa. Eso no es difícil con métodos como ActiveCell.End(xlDown), pero me gustaría no tener que reinventar una rueda aquí.

¿Hay algún método de Excel VBA como ActiveCell.GetOuterRange.Select? Eso estaría bien.

Respuesta

19

Para todas las celdas sucias, puede;

ActiveSheet.UsedRange.Select 

O para las células que rodean la celda actual de una manera contigua que puedas;

ActiveCell.CurrentRegion.Select 
Cuestiones relacionadas