2010-07-14 138 views
14

Sto solo iniziando con "la programmazione" di VBA su Excel per automatizzare alcune cose manuali anoying ... quindi questo suonerà probabilmente come una domanda nooby totale, anche se io ' Non sono molto familiare agli oggetti VBA e così via.Ottenere il numero di celle piene in una colonna (VBA)

Quindi la mia versione: C'è un modo più elegante per scoprire la lunghezza di una colonna? La mia prima colonna è un indice, con numeri in aumento monotono, che termina in un punto non prevedibile. Ora voglio scoprire quante voci ha questa colonna. C'è un modo migliore di iterare questo e guardare una cella vuota?

Greetz, Poeschlorn

risposta

12

Un modo è quello di: (Non si presume colonna di indice inizia A1)

MsgBox Range("A1").End(xlDown).Row 

che è alla ricerca per la cella non occupato 1 ° verso il basso da A1 e mostrando il suo numero di riga ordinali .

È possibile selezionare la cella successiva vuota con:

Range("A1").End(xlDown).Offset(1, 0).Select 

Se avete bisogno alla fine di un set di dati (compresi gli spazi), provare: Range ("A: A"). SpecialCells (xlLastCell) .Row

+0

E 'meglio farlo come MrKowz sottostante illustra. Se per qualche motivo c'è una riga vuota potresti perdere un sacco di dati. – Jon49

+0

In alcuni casi, tuttavia, questa domanda indica specificamente la presenza di celle piene e l'errato conteggio dovuto a celle non contigue può essere altrettanto grave. –

3

È inoltre possibile utilizzare

Cells.CurrentRegion 

di darvi una gamma che rappresenta i limiti dei dati sul foglio attivo corrente

Msdn dice sul tema

Restituisce un oggetto Range che rappresenta l'area corrente. L'attuale regione è un intervallo limitato da qualsiasi combinazione di righe vuote e colonne vuote. Sola lettura.

Quindi è possibile determinare il numero di colonne tramite

Cells.CurrentRegion.Columns.Count 

e contare fila via

Cells.CurrentRegion.Rows.Count 
3

Si può anche utilizzare:

UsedRange.Rows.Count 
+0

Questo ha funzionato perfettamente per me, grazie. – DavidGuaita

15

Se si vuole trovare l'ultima cella popolata in una particolare colonna, il metodo migliore è:

Range("A" & Rows.Count).End(xlUp).Row 

Questo codice utilizza l'ultima cella nella tutta la colonna (65536 per Excel 2003, 1048576 nelle versioni successive), e poi trovare la prima cella popolata sopra di esso. Questo ha la capacità di ignorare le "interruzioni" nei tuoi dati e trovare l'ultima riga vera.

2

Per Usa l'ultima colonna riempita la seguente:

lastColumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column 
Problemi correlati