Determinar o número de linhas num intervalo [fechado]
Pergunta
Eu sei o nome do intervalo do início de uma lista - coluna 1
de largura e linhas x
profunda
Como faço para calcular x
?
Há mais dados na coluna do que apenas esta lista. No entanto, esta lista é contígua -. Não há nada em qualquer uma das células acima ou abaixo ou ambos os lados ao lado
Solução
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
Mas se você é maldita certeza não há nada em torno da lista, em seguida, basta thisworkbook.Names(FirstCellName).RefersToRange.CurrentRegion.rows.count
Outras dicas
Sheet1.Range("myrange").Rows.Count
Por que não usar uma fórmula do Excel para determinar as linhas? Por exemplo, se você está procurando quantas células contêm dados na coluna A utilização deste:
= COUNTIFS (A: A, "<>")
Você pode substituir <> com qualquer valor para obter quantas linhas tem esse valor na mesma.
= COUNTIFS (A: A, "2008")
Isto pode ser usado para encontrar células preenchidas em uma linha também.
Você também pode usar:
Range( RangeName ).end(xlDown).row
para encontrar a última linha com dados nele a partir de seu intervalo nomeado.
Estou certo de que você provavelmente queria a resposta que @GSerg deu. Há também uma função de planilha chamado rows
que lhe dará o número de linhas.
Então, se você tem um dado intervalo nomeado chamado Data
que tem 7 linhas, então =ROWS(Data)
mostrará 7 em que a célula.
Essa única última linha funcionou perfeitamente @GSerg.
A outra função era o que eu estava trabalhando, mas eu não gosto de ter que recorrer a UDF de menos que seja absolutamente necessário.
Eu estava tentando uma combinação de Excel e VBA e tinha conseguido isso para o trabalho -. Mas seu desajeitado em comparação com a sua resposta ??p>
strArea = Sheets("Oper St Report CC").Range("cc_rev").CurrentRegion.Address
cc_rev_rows = "=ROWS(" & strArea & ")"
Range("cc_rev_count").Formula = cc_rev_rows