2012-07-18 7 views
10

Nelle versioni precedenti di Excel, premendo CTRL + A in un foglio di lavoro si selezionavano letteralmente tutte le celle. In Excel 2010 (non sono sicuro del 2007 o 2003), ho notato che se si preme CTRL + A all'interno di un blocco di celle che contiene valori, sembra sapere di selezionare solo le celle in quel blocco. Ad esempio, se tutte le celle nell'intervallo A1: D10 contengono valori e si preme CTRL + A mentre la cella attiva si trova in tale intervallo, selezionerà solo A1: D10. Se premi nuovamente CTRL + A, solo allora selezionerà effettivamente tutte le celle nel foglio di lavoro.Qual è il codice VBA da emulare selezionando un blocco con la scorciatoia CTRL + A?

Così ho registrato una macro per vedere quale codice macro veniva generato quando faccio questo, ma in realtà scrive Range("A1:D10").Select quando premo CTRL + A. Questo è limitante e non dinamico perché ora devo scrivere la mia logica per determinare i limiti attorno alla cella attiva. Non è difficile con metodi come ActiveCell.End(xlDown), ma mi piacerebbe non dover reinventare una ruota qui.

Esiste qualche metodo VBA di Excel come ActiveCell.GetOuterRange.Select? Sarebbe carino.

risposta

19

Per tutte le celle sporche è possibile;

ActiveSheet.UsedRange.Select 

Oppure per le celle che circondano la cella corrente in modo contiguo possibile;

ActiveCell.CurrentRegion.Select