Obiettivo:
Una variabile deve contenere la quantità di righe da un foglio specifico.Quantità di righe nel foglio
Problema:
Quale codice di sintassi in VBA di Excel devo contare la quantità di righe dal foglio?
Obiettivo:
Una variabile deve contenere la quantità di righe da un foglio specifico.Quantità di righe nel foglio
Problema:
Quale codice di sintassi in VBA di Excel devo contare la quantità di righe dal foglio?
utilizzando il metodo UsedRange è uno dei miei preferiti ma deve essere trattato con cura. Ha alcuni difetti/trucchi. È un problema noto che excel non tiene traccia della gamma usata molto bene. Qualsiasi riferimento all'intervallo utilizzato tramite VBA reimposterà il valore all'intervallo corrente utilizzato. Quindi provare a eseguire questa procedura secondaria quando si stanno ottenendo l'intervallo utilizzato:
Dim lRowCount as Long
Application.ActiveSheet.UsedRange
lRowCount = Worksheets("MySheet").UsedRange.Rows.Count
Ma essere consapevoli che questo vi darà il conteggio utilizzato gamma, quindi se avete righe vuote nella parte superiore della cartella di lavoro (che spesso le persone fanno spazio per cose come i criteri di filtro, ecc.) quindi non verranno contate. Il metodo usato può anche essere influenzato dalla formattazione.
Se si desidera che l'ultima riga utilizzato, che è quello che penso che si desidera, è possibile utilizzare il metodo Find, che è più affidabile:
Dim rLastCell As Range
Dim lLastRow As Long
Set rLastCell = ActiveSheet.Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
If Not rLastCell Is Nothing Then lLastRow = rLastCell.Row
Se sai che hai almeno uno cella con i dati in esso, allora si può semplificare il precedente per:
Dim lLastRow As Long
lLastRow = ActiveSheet.Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
Si può anche provare:
i = Sheets("SheetName").UsedRange.Rows.Count
Tuttavia, questo può diventare un po 'buggy, se si avvia la cancellazione e la compensazione righe.
Un modo migliore per farlo è:
i = Cells(Sheets("SheetName").Rows.Count, 1).End(xlup).Row
Ciò presuppone che ogni riga contiene dati nella colonna 1.
Se vuoi dire le righe totali, 'Worksheet.Rows.Count' lo farà. Se intendi qualcos'altro, faccelo sapere. –