VBA – Offset da ActiveCell

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on June 3, 2023

Este tutorial demonstrará como usar o Activecell Offset no VBA.

A ActiveCell é uma propriedade do VBA que representa o endereço da célula ativa em sua planilha. Se o cursor estiver posicionado na célula A1, a propriedade ActiveCell do VBA retornará o endereço de célula “A1”. Há várias propriedades e métodos conectados à ActiveCell. Neste artigo, vamos nos concentrar no método ActiveCell.Offset.

Propriedades e Métodos de ActiveCell.Offset

O ActiveCell.Offset tem várias propriedades e métodos disponíveis para serem programados com o VBA. Para visualizar as propriedades e os métodos disponíveis, digite a seguinte instrução em um procedimento, conforme mostrado abaixo, e pressione a tecla de ponto final no teclado para ver uma lista suspensa.

VBA ActiveCell Offset Methods

Os métodos são representados pelo ícone de método verde e as propriedades pelo ícone de mão pequena. As propriedades e os métodos do método ActiveCell.Offset são os mesmos do método ActiveCell.

Sintaxe do ActiveCell.Offset

A sintaxe do ActiveCell.Offset é a seguinte

VBA ActiveCell Offset Syntax

em que RowOffset e ColumnOffset são o número de linhas a serem deslocadas (números positivos para baixo, números negativos para cima) ou o número de colunas que você deseja deslocar (números positivos deslocam para a direita, números negativos para a esquerda).

ActiveCell.Offset..Select

O método Activecell.Offset..Select é o método mais comumente usado para o método Activecell.Offset. Ele permite que você se desloque para outra célula da planilha. Você pode usar esse método para se deslocar entre colunas ou para cima ou para baixo nas linhas da planilha.

Para mover-se para baixo em uma linha, mas permanecer na mesma coluna:

Activecell.Offset(1,0).Select

Para mover-se em uma coluna, mas permanecer na mesma linha:

Activecell.Offset (0,1).Select

Para descer em uma linha e atravessar uma coluna:

Activecell.Offset (1,1).Select

Para subir em uma linha:

Activecell.Offset(-1,0).Select

Para mover uma coluna para a esquerda:

Activecell.Offset(0,-1).Select

No procedimento abaixo, estamos fazendo um loop em um intervalo de células e movendo uma linha para baixo e uma coluna para o outro lado à medida que fazemos o loop:

Sub TesteActiveCell()
  Dim x As Integer
  Range("A1").Select
  For x = 1 To 10
   ActiveCell = x
   ActiveCell.Offset(1, 1).Select
  Next x
End Sub

O resultado disso é mostrado no gráfico abaixo:

VBA ActiveCell_Loop

O loop coloca o valor de i (1-10) na Activecell e, em seguida, usa a propriedade Activecell.Offset para descer uma linha e atravessar uma coluna para a direita, repetindo esse loop 10 vezes.

Uso do Objeto Range com Activecell.Offset Select

O uso do Objeto Range com a célula ativa às vezes pode confundir algumas pessoas.

Considere o seguinte procedimento:

Sub TesteActiveCellOffsetComRange()
  Range("B1: B10").Select
  ActiveCell.Offset(1, 1).Range("A1").Select
End Sub

Com ActiveCell.Offset(1,1.Range(“A1”), o Range(“A1”) foi especificado. Entretanto, isso não significa que a célula A1 da planilha será selecionada. Como especificamos o Range(“B1:B10”), a célula A1 nesse intervalo é, na verdade, a célula B1 na pasta de trabalho. Portanto, a célula será deslocada em 1 linha e 1 coluna da célula B1 e NÃO da célula A1.

VBA ActiveCell Offset Range

Portanto, o Range(“A1”) nesse caso não é necessário, pois a macro funcionará da mesma forma com ou sem ele.

Alternativas ao ActiveCell

Em vez de usar Activecell com o método Offset, também podemos usar o objeto Range com o método Offset.

Sub TesteRangeOffset() 
 Range("B1").Offset(0, 1).Select
End Sub

O procedimento acima selecionaria a célula C1 na planilha.

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA