Como determinar o número de linhas nos dados e usar esse valor na definição de um intervalo

0

Na minha macro, há uma linha:

Selection.AutoFill Destination:=Range("A2:A86893")

mas o número final da célula (86893), que é o número total de linhas em meus dados, deve ser alterado toda vez que a macro for executada. Preciso dessa macro, pois a quantidade de dados aumenta a cada vez, mas até agora precisei alterar o endereço manualmente.

É possível colocar uma fórmula em vez de um número de célula na definição do intervalo, algo como:

A2:A(counta(b:b))

em que a fórmula counta(b:b) me fornece o número total de linhas.

    
por senefro 15.06.2015 / 08:50

2 respostas

0

Sim, você simplesmente precisa construir a string que fornece o endereço do intervalo. No seu caso, você poderia fazer algo como:

Range("A2:A" & CStr(Evaluate("=CountA(B:B)"))

Para definir o intervalo que você deseja preencher.

Como um conselho adicional, você deve tentar evitar o uso de Select -statements ao definir seus intervalos. Tente this para uma leitura interessante.

    
por 15.06.2015 / 09:14
0

Para encontrar o último valor no seu intervalo, use este snippet simples -

Dim lrow As Integer
lrow = Cells(Rows.Count, "B").End(xlUp).Row

Agora você pode usá-lo no seu alcance como Range("A2:A"&lrow)

    
por 15.06.2015 / 17:35