Per ordinare una tabella di dati, utilizzare Excel Nomi in combinazione con la funzione CurrentRegion. Questo è meno rischioso dei riferimenti alle colonne hard-coding e può essere fatto in due semplici passaggi.
Il motivo per cui è preferibile specificare le colonne è che se si ottengono le colonne errate o si modificano in un secondo momento, i dati verranno scramble! Quando si esegue l'ordinamento, le celle in qualsiasi colonna omessa rimarranno dove sono, diventando parte delle righe errate. E questo è esattamente ciò che accadrà se aggiungerai ulteriori colonne in seguito, a meno che non ti ricordi di aggiornare il tuo VBA.
Ecco i due semplici passaggi per l'utilizzo di questo approccio. Per questo esempio, ho scelto una tabella di dati con quattro colonne e quattro righe:

Stiamo per ordinare per COL3 decrescente. Le celle nelle altre tre colonne condividono valori identici, consentendoci di verificare facilmente che siano tutte allineate alle righe corrette.
Fase 1: scegliere una cella della tabella di dati che è improbabile che mai essere rimosso, come ad esempio l'intestazione di una colonna che si intende rendere permanenti, e definire un nome per questa cella. È possibile definire il nome selezionando la cella e digitando direttamente nel menu a discesa Nome di Excel sopra il foglio di lavoro. Qui ho usato il nome RegionTag:

Subito, CurrentRegion possono fare riferimento l'intera tabella di dati proprio da questo. Potete vederlo in azione, se si codifica una linea di VBA per selezionare la tabella:
Range("RegionTag").CurrentRegion.Select
Questo è il risultato:

Questo è solo per l'illustrazione, che mostra la potenza del Nome/Combinazione CurrentRegion. Non è necessario selezionare la tabella per ordinarla.
Fase 2: definire un secondo nome, questa volta per la colonna che si desidera ordinare:

assicurarsi che il nome si riferisce a tutta la colonna selezionata facendo clic sull'intestazione di colonna , piuttosto che solo un intervallo di celle nella colonna.
Questo è tutto! Con questi due nomi definiti, siamo in grado di ordinare la tabella dei dati senza preoccuparsi di noi con le sue righe e colonne, anche se più sono aggiunti in seguito:
Range("RegionTag").CurrentRegion.Sort _
key1:=Range("SortCol"), order1:=xlDescending, Header:=xlYes
Qui è la nostra tabella di dati allineati utilizzando la dichiarazione di cui sopra:

ha funzionato !!! grazie – Jesus
Sei il benvenuto! Buona fortuna con il tuo progetto! Cordiali saluti, –
Ehi qualche volta ottengo questo errore: 1004 nel riferimento di ordinamento tempo di esecuzione non valido – Jesus