Trovare le ultime righe e colonne utilizzate è uno dei compiti fondamentali e importanti per qualsiasi automazione in Excel che utilizza 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 utilizzando Range.End

Vediamo prima il codice. Lo spiegherò lettera.

Sub getLastUsedRow()

Dim last_row As Integer

last_row = Cells(Rows.Count, 1).End(xlUp).Row ‘This line gets the last row

Debug.Print last_row

End Sub

Il sottotitolo sopra trova l’ultima riga nella colonna 1.

image

Come funziona?

È proprio come andare all’ultima riga del foglio e quindi premere la scorciatoia CTRL + SU.

Celle (Rows.Count, 1): questa parte seleziona la cella nella colonna A. Rows.Count fornisce 1048576, che di solito è l’ultima riga nel foglio Excel.

Cells(1048576, 1)
End (xlUp): End è un metodo della classe di intervallo 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.

Cells(Rows.Count, 1).End(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. Nel nostro esempio è 8.

Scopri quanto è facile trovare le ultime righe con i dati. Questo metodo selezionerà l’ultima riga nei dati indipendentemente dalle celle vuote prima di essa. Puoi vedere che nell’immagine solo la cella A8 contiene 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 in una colonna, rimuovi semplicemente “.row” dalla fine e scrivi .select.

Sub getLastUsedRow()

Cells(Rows.Count, 1).End(xlUp).Select ‘This line selects the last cell in a column

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 ‘This line selects the last cell in a column

Debug.print add

End Sub

La funzione Range.Address * restituisce l’indirizzo della cellula attiva.

Trova l’ultima colonna non vuota in 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 ‘This line gets the last column

Debug.Print last_col

End Sub

image

Puoi vedere nell’immagine che restituisce il numero di colonna dell’ultima cella non vuota nella riga 4. Che è 4.

Come funziona?

Bene, la meccanica è la stessa di trovare l’ultima cella con i dati in una colonna.

Abbiamo appena utilizzato parole chiave correlate alle colonne.

Selezionare il set di dati in Excel utilizzando VBA

Ora sappiamo come ottenere l’ultima riga e l’ultima colonna di Excel utilizzando VBA.

In questo modo 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 iniziale è fissa, che è B4. L’ultima riga e colonna non è fissa. Dobbiamo selezionare l’intera tabella dinamicamente usando vba.

image

Codice VBA per selezionare la tabella con celle vuote

Sub select_table()

Dim last_row, last_col As Long

'Get last row

last_row = Cells(Rows.Count, 2).End(xlUp).Row

'Get last column

last_col = Cells(4, Columns.Count).End(xlToLeft).Column

'Select entire table

Range(Cells(4, 2), Cells(last_row, last_col)).Select

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.

image

Vantaggi di questo metodo:

  1. È facile. Abbiamo letteralmente scritto solo una riga per ottenere l’ultima riga con i dati.

Questo lo rende facile.

  1. Veloce. Meno righe di codice, meno tempo impiegato.

  2. Facile da capire.

  3. Funziona perfettamente se hai una tabella di 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. Che è molto meno probabile che accada.

2. Trova l’ultima riga utilizzando la funzione Find ()

Vediamo prima il codice.

Sub last_row()

lastRow = ActiveSheet.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row



Debug.Print lastRow

End Sub

image

Come puoi vedere nell’immagine, questo codice restituisce accuratamente l’ultima riga.

Come funziona?

Qui usiamo la funzione find per trovare qualsiasi cella che contiene qualsiasi cosa usando l’operatore jolly “*”. L’asterisco viene utilizzato per trovare qualsiasi cosa, testo o numero.

We set search order by rows (searchorder:=xlByRows). We also tell excel vba the direction of search as xlPrevious (searchdirection:=xlPrevious). It makes find function to search from end of the sheet, row wise.

Once it find a cell that contains anything, it stops. We use the Range.Row method to fetch last row from active cell.

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

  1. Non è necessario conoscere il punto di partenza. Ti fa solo l’ultima riga. . Può essere generico e può essere utilizzato per trovare l’ultima cella con i dati in qualsiasi foglio senza alcuna modifica.

  2. Può essere utilizzato per trovare qualsiasi ultima istanza di testo o numero specifico sul foglio.

Contro della funzione Find ():

  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 l’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

image

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).Select

End Sub

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

Note: * 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.

Articoli correlati:

link: / files-cartella-di lavoro-e-fogli di lavoro-in-vba-cancella-fogli-senza-richieste-di-conferma-usando-vba-in-microsoft-excel [Elimina fogli senza richieste di conferma usando VBA in Microsoft Excel]

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Aggiungi e salva una nuova cartella di lavoro usando VBA in Microsoft Excel 2016]

link: / menu-barre degli strumenti-barra di stato-in-vba-mostra-un-messaggio-sulla-barra di stato-utilizzando-vba-in-microsoft-excel [Visualizza un messaggio sulla barra di stato VBA di Excel]

link: / general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Disattiva i messaggi di avviso usando VBA in Microsoft Excel 2016]

Articoli popolari:

link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel]

link: / tips-countif-in-microsoft-excel [CONTA.SE in Excel 2016]

link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel]