3 modi migliori per trovare l'ultima riga e colonna non vuota utilizzando VBA

Sommario

Trovare l'ultima riga e colonna utilizzata è uno dei compiti di base e importanti per qualsiasi automazione in Excel utilizzando VBA. Per compilare fogli, cartelle di lavoro e disporre i dati automaticamente, è necessario trovare il limite dei dati sui fogli.

Questo articolo spiegherà ogni metodo per trovare l'ultima riga e colonna in Excel nei modi più semplici.
1. Trova l'ultima riga non vuota in una colonna usando Range.End
Vediamo prima il codice. Lo spiego lettera.

Sub getLastUsedRow() Dim last_row As Integer last_row = Cells(Rows.Count, 1).End(xlUp).Row 'Questa riga ottiene l'ultima riga Debug.Print last_row End Sub

Il sub precedente trova l'ultima riga nella colonna 1.

Come funziona?
È come andare all'ultima riga del foglio e quindi premere la scorciatoia CTRL+SU.
Celle (conteggio righe, 1): Questa parte seleziona la cella nella colonna A. Rows.Count dà 1048576, che di solito è l'ultima riga nel foglio Excel.

Celle(1048576, 1)

.Fine(xlUp): End è un metodo di classe range che viene utilizzato per navigare nei fogli fino alle estremità. xlUp è la variabile che indica la direzione. Insieme questo comando seleziona l'ultima riga con i dati.

Celle(Righe.Conteggio, 1).Fine(xlUp)

.Riga : riga restituisce il numero di riga della cella selezionata. Quindi otteniamo il numero di riga dell'ultima cella con i dati nella colonna A. nell'esempio è 8.

Scopri quanto è facile trovare le ultime righe con i dati. Questo metodo selezionerà l'ultima riga nei dati indipendentemente dalle celle vuote precedenti. Puoi vedere che nell'immagine solo la cella A8 ha dati. Tutte le celle precedenti sono vuote tranne A4.

Seleziona l'ultima cella con i dati in una colonna
Se vuoi selezionare l'ultima cella nella colonna A, rimuovi semplicemente ".row" dalla fine e scrivi .select.

Sub getLastUsedRow() Cells(Rows.Count, 1).End(xlUp).Select 'Questa riga seleziona l'ultima cella in una colonna End Sub

Il comando “.Select” seleziona la cella attiva.
Ottieni la colonna dell'indirizzo dell'ultima cella
Se vuoi ottenere l'indirizzo dell'ultima cella nella colonna A, rimuovi semplicemente ".row" dalla fine e scrivi .address.

Sub getLastUsedRow() add=Cells(Rows.Count, 1).End(xlUp).address 'Questa riga seleziona l'ultima cella in una colonna Debug.print add End Sub

La gamma.Indirizzo la funzione restituisce l'indirizzo della cella attiva.
Trova l'ultima colonna non vuota di una riga
È quasi come trovare l'ultima cella non vuota in una colonna. Qui stiamo ottenendo il numero di colonna dell'ultima cella con i dati nella riga 4.

Sub getLastUsedCol() Dim last_col As Integer last_col = Cells(4,Columns.Count).End(xlToLeft).Column 'Questa riga ottiene l'ultima colonna Debug.Print last_col End Sub


Puoi vedere nell'immagine che sta restituendo il numero di colonna dell'ultima cella non vuota nella riga 4. Che è 4.
Come funziona?

Bene, la meccanica è come trovare l'ultima cella con i dati in una colonna. Abbiamo appena usato parole chiave relative alle colonne.
Seleziona il set di dati in Excel utilizzando VBA
Ora sappiamo come ottenere l'ultima riga e l'ultima colonna di Excel usando VBA. Usandolo possiamo selezionare facilmente una tabella o un set di dati. Dopo aver selezionato il set di dati o la tabella, possiamo eseguire diverse operazioni su di essi, come copia-incolla, formattazione, eliminazione, ecc.
Qui abbiamo il set di dati. Questi dati possono espandersi verso il basso. Solo la cella di partenza è fissa, che è B4. L'ultima riga e colonna non è fissa. Dobbiamo selezionare l'intera tabella dinamicamente usando vba.

Codice VBA per selezionare la tabella con celle vuote

Sub select_table() Dim last_row, last_col As Long 'Ottieni l'ultima riga last_row = Cells(Rows.Count, 2).End(xlUp).Row 'Ottieni l'ultima colonna last_col = Cells(4, Columns.Count).End(xlToLeft) .Column 'Seleziona l'intero intervallo della tabella (Cells (4, 2), Cells (last_row, last_col)). Seleziona End Sub

Quando lo esegui, l'intera tabella verrà selezionata in una frazione di secondo. Puoi aggiungere nuove righe e colonne. Selezionerà sempre tutti i dati.

Vantaggi di questo metodo:

  1. È facile. Abbiamo letteralmente scritto solo una riga per ottenere l'ultima riga con i dati. Questo lo rende facile.
  2. Veloce. Meno righe di codice, meno tempo impiegato.
  3. Facile da capire.
  4. Funziona perfettamente se hai una tabella dati goffa con punto di partenza fisso.

Contro del metodo Range.End:

  1. Il punto di partenza deve essere conosciuto.
  2. Puoi ottenere solo l'ultima cella non vuota in una riga o colonna nota. Quando il tuo punto di partenza non è fisso, sarà inutile. Cosa che è molto meno probabile che accada.

2. Trova l'ultima riga usando la funzione Trova()
Vediamo prima il codice.

 Sub last_row() lastRow = ActiveSheet.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row Debug.Print lastRow End Sub 


Come puoi vedere nell'immagine, questo codice restituisce l'ultima riga in modo accurato.
Come funziona?
Qui usiamo la funzione trova per trovare qualsiasi cella che contenga qualsiasi cosa usando l'operatore jolly "*". L'asterisco viene utilizzato per trovare qualsiasi cosa, testo o numero.

Impostiamo l'ordine di ricerca per righe (searchorder:=xlByRows). Diciamo anche a excel vba la direzione della ricerca come xlPrevious (searchdirection:=xlPrevious). Rende la funzione di ricerca per cercare dalla fine del foglio, per riga. Una volta trovata una cella che contiene qualcosa, si ferma. Usiamo il metodo Range.Row per recuperare l'ultima riga dalla cella attiva.

Vantaggi della funzione Trova per ottenere l'ultima cella con i dati:

  1. Non è necessario conoscere il punto di partenza. Ti dà solo l'ultima riga.
  2. Può essere generico e può essere utilizzato per trovare l'ultima cella con i dati in qualsiasi foglio senza alcuna modifica.
  3. Può essere utilizzato per trovare l'ultima istanza di testo o numero specifico sul foglio.

Contro della funzione Trova():

  1. È brutto. Molti argomenti.
  2. È lento.
  3. Impossibile utilizzare per ottenere l'ultima colonna non vuota. Tecnicamente, puoi. Ma diventa troppo lento.

3. Utilizzo della funzione SpecialCells per ottenere l'ultima riga
La funzione SpecialCells con argomento xlCellTypeLastCell restituisce l'ultima cella utilizzata. Vediamo prima il codice

Sub spl_last_row_() lastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row Debug.Print lastRow End Sub


Se esegui il codice sopra, otterrai il numero di riga dell'ultima cella utilizzata.

Come funziona?

Questo è l'equivalente vba della scorciatoia CTRL + Fine in Excel. Seleziona l'ultima cella utilizzata. Se registri la macro mentre premi CTRL+Fine, otterrai questo codice.

Sub Macro1() ' ' Macro1 Macro ' ' ActiveCell.SpecialCells(xlLastCell).Seleziona End Sub 

L'abbiamo appena usato per ottenere il numero di riga dell'ultima cella utilizzata.

Nota: Come ho detto sopra, questo metodo restituirà l'ultima cella utilizzata non l'ultima cella con i dati. Se elimini i dati nell'ultima cella, il codice vba sopra restituirà comunque lo stesso riferimento di celle, poiché era l'"ultima cella utilizzata". È necessario salvare prima il documento per ottenere l'ultima cella con i dati utilizzando questo metodo.

Elimina i fogli senza richieste di conferma utilizzando VBA in Microsoft Excel

Aggiungi e salva una nuova cartella di lavoro utilizzando VBA in Microsoft Excel 2016

Visualizza un messaggio sulla barra di stato VBA di Excel

Disattiva i messaggi di avviso utilizzando VBA in Microsoft Excel 2016

Articoli popolari:

La funzione CERCA.VERT in Excel

CONTA.SE in Excel 2016

Come utilizzare la funzione SOMMA.SE in Excel

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave