Faixa de Seleção VBA

Faixa de Seleção do Excel VBA

Depois de estudar a base com o VBA, é importante entender como trabalhar com um intervalo de células na planilha. Depois de começar a executar os códigos, praticamente na maioria das vezes, você precisa trabalhar com uma variedade de células. Portanto, é importante entender como trabalhar com uma faixa de células e um desses conceitos é o VBA “Seleção de Faixa”. Neste artigo, mostraremos como trabalhar com o “intervalo de seleção” no Excel VBA.

Seleção e intervalo são dois tópicos diferentes, mas quando dizemos para selecionar o intervalo ou seleção de intervalo é um conceito único. RANGE é um objeto, “Selection” é uma propriedade e “Select” é um método. As pessoas tendem a se confundir com esses termos, é importante saber as diferenças em geral.

Como selecionar um intervalo no Excel VBA?

Você pode baixar este modelo Excel de intervalo de seleção VBA aqui - Modelo Excel de intervalo de seleção VBA

Exemplo 1

Por exemplo, suponha que você deseja selecionar a célula A1 na planilha, então primeiro precisamos especificar o endereço da célula usando o objeto RANGE como o abaixo.

Código:

Depois de mencionar a célula, precisamos selecionar colocar ponto para ver a lista do IntelliSense que está associada ao objeto RANGE.

O formulário dessa variedade de listas escolhe o método “Selecionar”.

Código:

 Sub Range_Example1 () Range ("A1"). Selecione End Sub 

Agora, este código irá selecionar a célula A1 na planilha ativa.

Se você deseja selecionar a célula nas diferentes planilhas, primeiro precisamos especificar a planilha pelo seu nome. Para especificar a planilha, precisamos usar o objeto “WORKSHEET” e inserir o nome da planilha entre aspas duplas.

Por exemplo, se você deseja selecionar a célula A1 na planilha “Folha de Dados”, primeiro especifique a planilha exatamente como a seguir.

Código:

 Sub Range_Example1 () Worksheets ("Data Sheet") End Sub 

Em seguida, continue o código para especificar o que precisamos fazer nesta folha. Na “Folha de Dados” precisamos selecionar a célula A1, então o código será RANGE (“A1”).

Código:

 Sub Range_Example1 () Worksheets ("Data Sheet"). Range ("A1"). Selecione End Sub 

Quando você tenta executar este código, obteremos o erro abaixo.

A razão para isso é “não podemos fornecer diretamente o objeto de alcance e o método de seleção para o objeto de planilhas”.

Primeiro, precisamos selecionar ou ativar a planilha VBA, então podemos fazer o que quisermos.

Código:

 Sub Range_Example1 () Worksheets ("Data Sheet"). Ative Range ("A1"). Selecione End Sub 

Agora, isso irá selecionar a célula A1 na planilha “Folha de Dados”.

Exemplo # 2 - Trabalhando com a faixa selecionada atual

Selecionar é uma coisa diferente e trabalhar com um intervalo de células já selecionado é diferente. Suponha que você queira inserir um valor “Hello VBA” na célula A1, então podemos fazer isso de duas maneiras.

Em primeiro lugar, podemos passar diretamente o código VBA como RANGE (“A1”) .Valor = “Hello VBA”.

Código:

 Sub Range_Example1 () Range ("A1"). Value = "Hello VBA" End Sub 

O que esse código fará é apenas inserir o valor “Hello VBA” na célula A1, independentemente da célula selecionada no momento.

Observe o resultado do código acima. Quando executamos este código, ele inseriu o valor “Hello VBA” mesmo que a célula atualmente selecionada seja B2.

Em segundo lugar, podemos inserir o valor na célula usando a propriedade “Seleção”. Para isso, primeiro precisamos selecionar a célula manualmente e executar o código.

Código:

 Sub Range_Example1 () Selection.Value = "Hello VBA" End Sub 

O que esse código fará é inserir o valor “Hello VBA” na célula atualmente selecionada. Para obter um exemplo, veja o exemplo de execução abaixo.

Quando executei o código, minha célula selecionada atualmente era B2 e nosso código inseriu o mesmo valor na célula atualmente selecionada.

Agora selecionarei a célula B3 e executarei, aí também obteremos o mesmo valor.

Mais uma coisa que podemos fazer com a propriedade “seleção” é que também podemos inserir valor em mais de uma célula. Por exemplo, selecionarei o intervalo de células de A1 a B5 agora.

Agora, se eu executar o código, para todas as células selecionadas obteremos o valor como “Hello VBA”.

Portanto, a simples diferença entre especificar o endereço da célula pelo objeto RANGE e pela propriedade Selection é que, no código do objeto Range, o valor será inserido nas células que são especificadas explicitamente.

Mas no objeto Selection, não importa em qual célula você esteja, ele irá inserir o valor mencionado em todas as células selecionadas.

Coisas para lembrar aqui

  • Não podemos fornecer diretamente o método select na propriedade Selection.
  • RANGE é um objeto e a seleção é uma propriedade.
  • Em vez de intervalo, podemos usar a propriedade CELLS.