VBA OFFSET

Função Excel VBA OFFSET

A função VBA Offset é usada para mover ou referir-se a uma referência que salta um determinado número de linhas e colunas, os argumentos para esta função no VBA são os mesmos dos argumentos na planilha.

Por exemplo, suponha que você tenha um conjunto de dados como o abaixo.

Agora, da célula A1, você deseja mover 4 células para baixo e selecionar a quinta célula, ou seja, a célula A5.

Da mesma forma, se você quiser descer da célula A1, 2 linhas, ir 2 colunas à direita e selecionar essa célula, ou seja, célula C2.

Nestes casos, a função OFFSET é muito útil. Especialmente no VBA OFFSET, a função é simplesmente fenomenal.

OFFSET é usado com Range Object no Excel VBA

No VBA, não podemos inserir diretamente a palavra OFFSET. Precisamos usar o objeto VBA RANGE primeiro e, a partir desse objeto range, podemos usar a propriedade OFFSET.

No Excel, o intervalo nada mais é do que uma célula ou intervalo da célula. Uma vez que OFFSET se refere às células, precisamos usar o objeto RANGE primeiro e então podemos usar o método OFFSET.

Sintaxe de OFFSET no VBA Excel

  • Deslocamento de linha: quantas linhas você deseja deslocar da célula selecionada. Aqui, a célula selecionada é A1, ou seja, intervalo (“A1”).
  • Deslocamento da coluna: quantas colunas você deseja deslocar da célula selecionada. Aqui, a célula selecionada é A1, ou seja, intervalo (“A1”).

Exemplos

Você pode baixar este modelo VBA OFFSET aqui - Modelo VBA OFFSET

Exemplo 1

Considere os dados abaixo como demonstração de exemplo.

Agora, quero selecionar a célula A6 da célula A1. Inicie a macro e a célula de referência usando o objeto Range.

Código:

 Sub Offset_Example1 () Intervalo ("A1"). Offset (End Sub 

Agora eu quero selecionar a célula A6, ou seja, quero baixar 5 células. Portanto, insira 5 como o parâmetro para Row Offset.

Código:

 Sub Offset_Example1 () Intervalo ("A1"). Offset (5 End Sub 

Como estou selecionando na mesma coluna, deixo de fora a parte da coluna. Feche o colchete e coloque um ponto (.) E digite o método “Select”.

Código:

 Sub Offset_Example1 () Intervalo ("A1"). Offset (5) .Selecionar End Sub 

Agora execute este código usando a tecla F5 ou você pode executar manualmente para selecionar a célula A6 conforme mostrado abaixo.

Resultado:

Exemplo # 2

Agora pegue os mesmos dados, mas aqui veremos como usar o argumento de deslocamento de coluna também. Agora, quero selecionar a célula C5.

Visto que quero selecionar a célula C5 em primeiro lugar, quero mover 4 células para baixo e pegar as 2 colunas certas para chegar à célula C5. O código abaixo faria o trabalho para mim.

Código:

 Sub Offset_Example2 () Range ("A1"). Offset (4, 2) .Selecione End Sub 

Eu executo este código manualmente ou usando a tecla F5 então, ele selecionará a célula C5 conforme mostrado na imagem abaixo.

Resultado:

Exemplo # 3

Vimos como compensar linhas e colunas. Também podemos selecionar as células acima das células especificadas. Por exemplo, se você está na célula A10 e deseja selecionar a célula A1, como você seleciona?

No caso de movermos para baixo na célula, podemos inserir um número positivo, portanto, aqui, no caso de movermos para cima, precisamos inserir números negativos.

Da célula A9, precisamos avançar 8 linhas, ou seja, -8.

Código:

 Sub Offset_Example1 () Intervalo ("A9"). Offset (-8) .Selecionar End Sub 

Se você executar esse código usando a tecla F5 ou puder executar esse código manualmente, ele selecionará a célula A1 da célula A9.

Resultado:

Exemplo # 4

Suponha que você esteja na célula C8. Desta célula, você deseja selecionar a célula A10.

A partir da célula ativa, ou seja, célula C8, precisamos primeiro mover 2 linhas para baixo e precisamos mover 2 colunas para a esquerda para selecionar a célula A10.

No caso de mover para a esquerda para selecionar a coluna, precisamos especificar que o número é negativo. Então, aqui precisamos voltar em -2 colunas.

Código:

 Sub Offset_Example2 () Range ("C8"). Offset (2, -2) .Selecionar End Sub 

Agora execute este código usando a tecla F5 ou execute manualmente, ele selecionará a célula A10 conforme mostrado abaixo:

Resultado:

Coisas para lembrar

  • No caso de subir de linhas, precisamos especificar o número em negativos.
  • No caso de mover para a esquerda para selecionar a coluna, o número deve ser negativo.
  • A célula A1 é a primeira linha e a primeira coluna.
  • Célula ativa significa células atualmente selecionadas.
  • Se você deseja selecionar a célula usando OFFSET, você precisa mencionar “.Selecionar”.
  • Se você deseja copiar a célula usando OFFSET, você precisa mencionar “.Copiar”.