Faixa de seleção do VBA - Como selecionar um intervalo no Excel VBA?

Faixa de Seleção do Excel VBA

Depois de conhecer a base do 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 um intervalo de células, por isso é importante entender como trabalhar com um intervalo de células, e um desses conceitos é VBA “Seleção de intervalo”. 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 único conceito. RANGE é um objeto, “Selection” é uma propriedade e “Select” é um método. As pessoas tendem a se confundir com esses termos. É importante conhecer as diferenças em geral.

Como selecionar um intervalo no Excel 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 um objeto RANGE como abaixo.

Código:

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

Para formar essa variedade de listas, escolha 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ê quiser selecionar a célula nas diferentes planilhas, primeiro precisamos especificar a planilha por 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”, então primeiro especifique a planilha como abaixo.

Código:

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

Em seguida, continue o código para especificar o que precisamos fazer nesta planilha. Em “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ê tentar executar este código, obteremos o erro abaixo.

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

Primeiro, precisamos selecionar ou ativar a planilha VBA e, em seguida, podemos fazer tudo o que desejamos.

Código:

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

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

Exemplo # 2 - Trabalhando com a faixa atual selecionada

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 = “Olá, 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”, embora 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. Por exemplo, veja o exemplo de execução abaixo.

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

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

Mais uma coisa que podemos fazer com a propriedade “selection” é que podemos inserir valor em mais de uma célula também. 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ê está. 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.

Artigos interessantes...