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 VBAExemplo 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.