O problema é que, no VBA, o tipo Int
é um campo de 16 bits sinalizado, portanto, ele só pode manter valores de -32.768 a +32.767. Altere sua variável LastRow
para Long
, que é um campo de 32 bits assinado e pode conter valores de -2.147.483.648 para +2.147.483.647.
Intuitivamente, você acha que usar um int
em vez de um long
pode ser mais eficaz, pois o primeiro é menor que o segundo, mas como você pode ver explicado nesta resposta , o VBA converte int
s para long
s de qualquer forma, assim você pode usar long
o tempo todo quando você lida com inteiros (números inteiros ).