2008-09-22 18 views
16

Conozco el nombre del rango del inicio de una lista - 1 columna de ancho y x filas de profundidad.Determine el número de filas en un rango

¿Cómo puedo calcular 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 encima o debajo, ni en ninguno de los lados al lado.

+1

¿Podría proporcionarnos una entrada de ejemplo y un ejemplo de lo que quiere? –

Respuesta

12
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á absolutamente seguro de que no hay nada alrededor de la lista, a continuación, sólo thisworkbook.Names(FirstCellName).RefersToRange.CurrentRegion.rows.count

2

estoy seguro de que es probable que quería la respuesta que dio @GSerg. También hay una función de hoja de cálculo llamada rows que le dará el número de filas.

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

+0

hi wcm gracias - La respuesta de GSerg es la que yo quería. El problema que tenía con la fórmula ROWS era que no sabía la dirección de rango y no podía usar un rango de desplazamiento dinámico usando counta porque había más datos en la columna – SpyJournal

1

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

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

He estado probando una combinación de excel y vba y he conseguido que esto funcione, 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 
5

También puede utilizar:

Range(RangeName).end(xlDown).row 

para encontrar la última fila con datos en él a partir de su rango con nombre.

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

¿Por qué no utilizar una fórmula de Excel para determinar las filas? Por ejemplo, si se busca el número de células contener datos en la Columna A Utilice esta:

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

Puede reemplazar <> con cualquier valor para obtener la forma muchas filas tienen ese valor en ella.

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

Esto puede ser usado para encontrar células completaron una fila también.

Cuestiones relacionadas