O objeto Range do Microsoft Excel - Parte II
Continuando o artigo sobre o objeto Range, hoje, eu escrevo sobre a propriedade Offset.

Este post foi originalmente publicado em https://officevbavsto.blogspot.com/2011/09/o-retorno-de-jedi-e-um-pouco-do-objeto_10.html.
Continuando o artigo sobre o objeto Range
, hoje, eu escrevo sobre a propriedade Offset.
Propriedade Offset
Pense na seguinte situação: você precisa copiar uma base de dados numa planilha do Excel que sempre crescerá, mas você gostaria de não copiar o cabeçalho desta base de dados. Talvez este cabeçalho tenho 1 linha, ou até mais linhas. Como fazer isso?
Vamos a um exemplo prático.
Ainda usando a planilha de exemplo do artigo anterior digite o seguinte código:
Sub Macro1()
Range("B2").CurrentRegion.Select
Selection.Offset(1, 0).Select
Selection.Copy
End Sub
Observe que a primeira linha não foi selecionada, pois a seleção foi deslocada (Offset).
A propriedade Offset
, possui dois parâmetros: RowOffset
e ColumnOffset
.
- Em
RowOffset
você especifica quantas linhas devem ser deslocadas, este argumento pode receber números positivos, negativos e zero. Se negativo, a seleção será deslocada para trás e se positivo será deslocada adiante. - Em
ColumnOffset
você especifica quantas colunas devem ser deslocadas, e recebe os parâmetros da mesma maneira que RowOffset.
Sintaxe: expressão.Offset(RowOffset, ColumnOffset)
.
Vamos a mais alguns exemploes:
Sub Macro2()
Range("B2").CurrentRegion.Select
Selection.Offset(0, 1).Select
Selection.Copy
End Sub
No exemplo acima eu desloquei uma coluna a direita.
Sub Macro3()
Range("B2").CurrentRegion.Select
Selection.Offset(-1, 0).Select
Selection.Copy
End Sub
No exemplo acima eu desloquei uma linha acima.
E, por fim, um exemplo de um código otimizado:
Sub Macro4()
Range("B2").CurrentRegion.Offset(4, 0).Copy Range("AA2")
End Sub
Créditos
Photo by Anna Shvets from Pexels
comments powered by Disqus