Objetivo:
Una variable debe contener la cantidad de filas de una hoja específica.Cantidad de filas en la hoja
Problema:
¿Qué código de sintaxis en Excel VBA necesito para contar la cantidad de filas de la hoja?
Objetivo:
Una variable debe contener la cantidad de filas de una hoja específica.Cantidad de filas en la hoja
Problema:
¿Qué código de sintaxis en Excel VBA necesito para contar la cantidad de filas de la hoja?
utilizando el método UsedRange es uno de mis favoritos, pero que tiene que ser tratado con cuidado. Tiene algunos defectos/errores. Es un problema conocido que Excel no hace un seguimiento del rango utilizado muy bien. Cualquier referencia al rango utilizado a través de VBA restablecerá el valor al rango utilizado actualmente. Así que trate de ejecutar este procedimiento sub cuando se está recibiendo el rango utilizado:
Dim lRowCount as Long
Application.ActiveSheet.UsedRange
lRowCount = Worksheets("MySheet").UsedRange.Rows.Count
Pero tenga en cuenta que esto le dará el recuento utilizado rango, por lo que si usted tiene filas en blanco en la parte superior de su libro (que a menudo la gente hace para dejar espacio para cosas como criterios de filtro, etc.), entonces no se contarán. El método usedrange también puede verse afectado por el formateo.
Si desea que la última fila utilizada, que es lo que creo que quiere, entonces se puede utilizar el método de búsqueda que es más fiable:
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
Si usted sabe que tiene al menos una celda con datos en ella, entonces se puede simplificar el anterior a:
Dim lLastRow As Long
lLastRow = ActiveSheet.Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
También puede probar:
i = Sheets("SheetName").UsedRange.Rows.Count
Sin embargo, esto se puede conseguir de errores, si se inicia la eliminación y limpieza de filas.
Una mejor manera de hacer esto es:
i = Cells(Sheets("SheetName").Rows.Count, 1).End(xlup).Row
Esto supone que cada fila tiene los datos en la columna 1.
Si se refiere a filas en total, 'Worksheet.Rows.Count' lo hará. Si quieres decir algo más, avísanos. –