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.