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

Foi útil?

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

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top