Pregunta

Conozco el nombre del rango del inicio de una lista. 1 ancho de columna y x filas de profundidad.

¿Cómo calculo? x?

Hay más datos en la columna que solo esta lista.Sin embargo, esta lista es contigua: no hay nada en ninguna de las celdas superiores o inferiores ni en ninguno de los lados al lado.

¿Fue útil?

Solución

Function ListRowCount(ByVal FirstCellName as String) as Long
    With thisworkbook.Names(FirstCellName).RefersToRange
        If isempty(.Offset(1,0).value) Then 
            ListRowCount = 1
        Else
            ListRowCount = .End(xlDown).row - .row + 1
        End If
    End With
End Function

Pero si estás completamente seguro de que no hay nada en la lista, entonces simplemente thisworkbook.Names(FirstCellName).RefersToRange.CurrentRegion.rows.count

Otros consejos

Sheet1.Range("myrange").Rows.Count

¿Por qué no utilizar una fórmula de Excel para determinar las filas?Por ejemplo, si busca cuántas celdas contienen datos en la columna A, use esto:

=CONTAR.SI(A:A,"<>")

Puede reemplazar <> con cualquier valor para obtener cuántas filas tienen ese valor.

=CONTAR.SI(A:A,"2008")

Esto también se puede utilizar para buscar celdas llenas en una fila.

También puedes usar:

Range( RangeName ).end(xlDown).row

para encontrar la última fila con datos que comiencen en el rango nombrado.

Estoy seguro de que probablemente querías la respuesta que dio @GSerg.También hay una función de hoja de cálculo llamada rows eso te dará el número de filas.

Entonces, si tiene un rango de datos con nombre llamado Data eso tiene 7 filas, entonces =ROWS(Data) mostrará 7 en esa celda.

Esa última línea funcionó perfectamente @GSerg.

La otra función era en la que había estado trabajando, pero no me gusta tener que recurrir a UDF a menos que sea absolutamente necesario.

Había estado probando una combinación de Excel y VBA y logré que esto funcionara, pero es complicado en comparación con su respuesta.

strArea = Sheets("Oper St Report CC").Range("cc_rev").CurrentRegion.Address
cc_rev_rows = "=ROWS(" & strArea & ")"
Range("cc_rev_count").Formula = cc_rev_rows
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top