Há várias maneiras de contar linha com vba, existe tantas que não lembro todas, e cada tipo de procedimento possui vantagens e desvantagens.

E neste artigo específico vou trazer duas maneiras:

 

Codigo 1 – contar linha a linha

>>CODIGO 1 – O problema do código abaixo é o tempo para verificar (dependendo da qtde) e complexidade, pois ele irá varrer linha a linha da coluna especificada

Sub Macro1()

varColuna = 1 ' Coluna que será verificado
varLinha = 1 ' Linha inicial que será verificado
varConteudo = 1
Do While varConteudo <> Empty 'continua a verificar se conteudo for diferente de vazio
   varLinha = varLinha + 1 'contador de linha
   varConteudo = Cells(varLinha, varColuna).Value 'grava o valor da celula
Loop
MsgBox "A qtde. de linhas é: " + CStr(varLinha - 1)

End Sub

 

Codigo 2 – Contar linha 2

‘>>CODIGO 2 O problema deste código abaixo que se tiver uma linha vazia no meio dos registros ele vai contar junto

Sub Contador()

numeroRegistros = Range("A65536").End(xlUp).Row
MsgBox "Número de Registros: " & numeroRegistros, vbOkOnly, "Número de registros em: " & now()

End Sub

‘Este ultimo código é visto pelo site msdn


 

E como havia dito existe outras maneira que você poerá ver aqui no site:

Ver última linha preenchida
Ultima célula alterada