Excel VBA Last Row
Trovare l'ultima riga in una colonna è un aspetto importante per scrivere macro e renderle dinamiche. Poiché non preferiremmo aggiornare gli intervalli di celle di tanto in tanto quando lavoriamo con i riferimenti di cella di Excel. Come programmatore / sviluppatore, preferiresti sempre scrivere un codice dinamico che possa essere utilizzato su qualsiasi dato e che sia sufficiente per le tue esigenze. Inoltre, sarebbe sempre fantastico avere l'ultima riga dei tuoi dati in modo da poter modificare dinamicamente il codice secondo le tue esigenze.
Vorrei solo sottolineare un esempio che ribadisce l'importanza del codice dinamico.
Supponiamo che io abbia i dati indicati di seguito con i dipendenti e i loro salari.
E guarda il codice indicato di seguito:
Codice:
Esempio secondario 1 () Range ("D2"). Valore = WorksheetFunction.Sum (Range ("B2: B11")) End Sub
Qui, questo codice stampa la somma degli stipendi per tutti i dipendenti (cella B2: B11 ) nella cella D2 . Vedi l'immagine qui sotto:
Ora, cosa succede se aggiungo alcune celle in questi dati ed eseguo di nuovo questo codice?
Dal punto di vista logico, il codice sopra riportato non riassumerà tutte le 14 righe dalla colonna B. Il motivo per lo stesso è l'intervallo che abbiamo aggiornato in WorksheetFunction (che è B2: B11). Questo è il motivo, un codice dinamico che può prendere in considerazione l'ultima riga riempita rende più importante per noi.
In questo articolo, introdurrò alcuni metodi che possono essere utili per scoprire l'ultima riga per un determinato set di dati utilizzando il codice VBA.
Come trovare l'ultima riga utilizzata nella colonna utilizzando VBA?
Di seguito sono riportati i diversi esempi con metodi diversi per trovare l'ultima riga utilizzata di una colonna in Excel utilizzando il codice VBA.
Puoi scaricare questo modello Excel ultima riga VBA qui - Modello Excel ultima riga VBAEsempio n. 1: utilizzo del metodo Range.End ()
Bene, questo metodo è uguale all'utilizzo di Ctrl + Freccia giù in Excel per passare all'ultima riga non vuota. Su linee simili, segui i passaggi seguenti per creare il codice in VBA per raggiungere l'ultima riga non vuota di una colonna in Excel.
Passaggio 1: definire una variabile che può assumere valore per l'ultima riga non vuota della colonna di Excel.
Codice:
Sub esempio2 () Dim Last_Row come sottotitolo lungo
Qui, la variabile Last_Row è definita come LUNGA solo per assicurarsi che possa accettare qualsiasi numero di argomenti.
Passaggio 2: utilizzare la variabile definita per contenere il valore dell'ultima riga non vuota.
Codice:
Esempio secondario2 () Dim Last_Row As Long Last_Row = End Sub
Passaggio 3: digitare il codice che inizia con CELLS (Rows.Count davanti a Last_Row = .
Codice:
Esempio secondario2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count End Sub
Passaggio 4: menzione 1 dopo una virgola nel codice sopra menzionato. Il valore numerico 1 è sinonimi della prima colonna nel foglio Excel.
Codice:
Esempio secondario2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) End Sub
Questo codice consente a VBA di scoprire il numero totale di righe (vuote + non vuote) presenti nella prima colonna del foglio di lavoro di Excel. Ciò significa che questo codice consente al sistema di passare all'ultima cella di Excel.
Ora, cosa succede se ti trovi nell'ultima cella di Excel e vuoi salire fino all'ultima riga non vuota? Utilizzerai Ctrl + Freccia su, giusto?
La stessa logica che useremo nella prossima riga di codice.
Passaggio 5: utilizzare una combinazione di tasto Fine e xlUp per passare all'ultima riga non vuota in Excel.
Codice:
Esempio secondario2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) End Sub
Questo ti porterà all'ultima riga non vuota in Excel. Tuttavia, volevi un numero di riga per lo stesso.
Passaggio 6: utilizzare ROW per ottenere il numero di riga dell'ultima riga non vuota.
Codice:
Esempio secondario2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub
Passaggio 7: mostra il valore di Last_Row che contiene l'ultimo numero di riga non vuoto utilizzando MsgBox.
Codice:
Esempio secondario2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub
Passaggio 8: eseguire il codice utilizzando il pulsante Esegui o premendo F5 e vedere l'output.
Produzione:
Passaggio 9: ora eliminiamo una riga e vediamo se il codice fornisce un risultato accurato o meno. Ci aiuterà a verificare il dinamismo del nostro codice.
Esempio n. 2: utilizzo di Range e SpecialCells
Possiamo anche usare la proprietà Range e SepcialCells di VBA per ottenere l'ultima riga non vuota del foglio Excel.
Segui i passaggi seguenti per ottenere l'ultima riga non vuota in Excel utilizzando il codice VBA:
Passaggio 1: definire nuovamente una variabile come Long.
Codice:
Esempio secondario 3 () Dim Last_Row come sottotitolo lungo
Passaggio 2: iniziare a memorizzare il valore nella variabile Last_Row utilizzando l'operatore di assegnazione.
Codice:
Esempio secondario 3 () Dim Last_Row As Long Last_Row = End Sub
Passaggio 3: iniziare a digitare l' intervallo ("A: A") .
Codice:
Esempio secondario 3 () Dim Last_Row As Long Last_Row = Range ("A: A") End Sub
Passaggio 4: utilizzare la funzione SpecialCells per scoprire l'ultima cella non vuota.
Codice:
Esempio secondario 3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub
Questa funzione SpecialCells seleziona l'ultima cella dal tuo Excel mentre è scritto tra parentesi ( xlCellTypeLastCell consente di selezionare l'ultima cella non vuota dal tuo foglio Excel).
Passaggio 5: ora, utilizzare ROW per ottenere l'ultima riga dal foglio Excel.
Codice:
Esempio secondario 3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub
Questo restituirà l'ultima riga non vuota per te da Excel.
Passaggio 6: Ora, assegnare questo valore di Last_Row a MsgBox in modo che possiamo vedere l'ultimo numero di riga non vuoto nella finestra di messaggio.
Codice:
Esempio secondario3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub
Passaggio 7: eseguire il codice premendo F5 o il pulsante Esegui posizionato nella parte superiore dell'angolo sinistro.
Produzione:
Si può vedere che l'ultimo numero di cella non vuoto viene visualizzato tramite MsgBox con riferimento alla colonna A. Perché abbiamo menzionato la colonna A in Funzione intervallo durante la definizione della formula variabile.
Passaggio 8: se eliminiamo una riga e possiamo eseguire questa formula. Vediamo cosa succede.
Puoi vedere che il sistema ha ancora assegnato un numero di righe pari a 14. Anche se ho eliminato una riga e il conteggio delle righe effettivo è 13, il sistema non ha acquisito il conteggio delle righe in modo accurato. Affinché il sistema acquisisca il numero effettivo di righe, è necessario salvare il foglio di lavoro ed eseguire nuovamente il codice.
Ora puoi vedere il conteggio delle righe effettive in questo screenshot.
Esempio n. 3: utilizzo di Range.Find ()
Segui i passaggi seguenti per ottenere l'ultima riga non vuota in Excel utilizzando il codice VBA:
Passaggio 1: definire una variabile più a lungo.
Codice:
Esempio secondario 4 () Dim Last_Row come sottotitolo lungo
Passaggio 2: ora, utilizzare il seguente codice per visualizzare l'ultima riga non vuota.
Codice:
Esempio secondario 4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub
Qui, la funzione FIND cerca una prima cella non vuota. Asterisk (*) è un operatore jolly che aiuta a scoprire lo stesso.
A partire dalla cella A1, il sistema torna all'ultima cella dal foglio e cerca in senso inverso (xlPrecedente). Si sposta da destra a sinistra (xlByRows) e si sposta nello stesso foglio attraverso tutte le righe su linee simili fino a trovare una riga non vuota (vedere il .ROW alla fine del codice).
Passaggio 3: utilizzare MsgBox per memorizzare il valore dell'ultima riga non vuota e visualizzarlo come una finestra a comparsa.
Codice:
Esempio secondario 4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub
Passaggio 4: eseguire il codice e visualizzare l'output come una finestra pop-up contenente l'ultimo numero di riga non vuoto.
Produzione:
Cose da ricordare
- End (Esempio 1) può essere utilizzato per scoprire la prima cella / riga vuota o l'ultima cella / riga non vuota in una determinata colonna utilizzando il codice VBA.
- La fine funziona su una singola colonna per la maggior parte del tempo. Se disponi di dati negli intervalli, sarebbe difficile decidere quale colonna utilizzare per scoprire l'ultima riga non vuota.
- Trova (Esempio3) funziona su un intero intervallo dal punto di inizio e trova l'ultima cella / riga non vuota in una determinata colonna utilizzando il codice VBA. Può anche essere usato per scoprire l'ultima colonna non vuota.
Articoli consigliati
Questa è una guida per VBA Last Row. Qui discutiamo come trovare l'ultima riga utilizzata in una determinata colonna insieme ad alcuni esempi pratici e template Excel scaricabili. Puoi anche consultare i seguenti articoli per saperne di più -
- Come utilizzare la colonna Inserisci VBA?
- Come selezionare righe e colonne di Excel?
- Panoramica delle celle di intervallo VBA
- Come aggiungere celle in Excel?