O objeto Range do Microsoft Excel - Parte I
Hoje, eu escrevo sobre alguns métodos muito úteis disponíveis no objeto Range do Microsoft Excel. Você conhece o objeto Range? Bem, é aquele objeto que deixa você mexer com as células de uma planilha.

Este post foi originalmente publicado em https://officevbavsto.blogspot.com/2011/09/o-retorno-de-jedi-e-um-pouco-do-objeto.html.
Hoje, eu escrevo sobre alguns métodos muito úteis disponíveis no objeto Range
do Microsoft Excel. Você conhece o objeto Range
? Bem, é aquele objeto que deixa você mexer com as células de uma planilha.
Vamos a alguns exemplos:
Sub Macro1()
'Seleciona as regi㯠de c鬵las B3:E8
Range("B3:E8").Select
'Copia e cola valores
Range("B3:E8").Copy
Range("B8").PasteSpecial xlPasteValues
'Limpa tudo (valores, formata絥s ...)
Range("B3:E8").Clear
'Limpa valores
Range("B3:E8").ClearContents
'Limpar formata絥s
Range("B3:E8").ClearFormats
'Altera a cor da fonte
Range("C11:G20").Font.Color = -16776961
End Sub
Propriedade CurrentRegion
O que essa propriedade faz? Veja a situação da imagem abaixo:

Suponha que eu precise sempre selecionar a região de células onde existam dados e que essa minha base de dados sempre cresça. Hoje, a última linha da base é a linha 27, mas amanhã talvez chegue até a linha 40. Um código não otimizado seria o seguinte:
Sub Macro2()
Range("B2:G27").Select
Selection.Copy
End Sub
Este código está copiando a região de células da minha base de dados, mas e se amanhã essa base de dados crescer? Toda vez você terá de atualizar o código.
Como resolver ? Utilize a propriedade CurrentRegion
. A propriedade CurrentRegion
retorna a região atual, que é um intervalo delimitado por qualquer combinação de linha e colunas em branco. Essa propriedade é útil para o trabalho com intervalos que mudam com frequência.
Sub Macro3()
Range("B2").CurrentRegion.Select
Selection.Copy
End Sub
Basta você definir uma célula qualquer que esteja dentro da região de dados (no exemplo, utilizei a célula B2) e usar a propriedade CurrentRegion
.
O que acontece se você definir no código uma célula que não esteja na região de dados, como a célula AA2, por exemplo?A propriedade CurrentRegion
vai retornar apenas a célula que você definiu, ou seja, a célula AA2.
Sub Macro4()
Range("AA2").CurrentRegion.Select
Selection.Copy
End Sub
Outro exemplo:
Sub Macro5()
Range("B2").CurrentRegion.Copy Range("AA2")
End Sub
Créditos
Photo by ThisIsEngineering from Pexels
comments powered by Disqus