Como usar o VBA para selecionar um intervalo do Excel

10:25 28/11/2021 | 21 Lượt xem

O VBA facilita a seleção de um intervalo do Excel. Aqui estão duas macros que oferecem máxima eficiência e flexibilidade.

fs-stockistock-859161110.jpg

Usar o VBA para realizar alguma ação em um intervalo do Excel é uma tarefa frequente, mas para isso você precisa de uma maneira de transmitir ao VBA em quais células deseja agir. Usar a propriedade de seleção do aplicativo é provavelmente a maneira mais fácil (mas não a única). Neste artigo, mostrarei duas macros: a primeira permite que o usuário selecione um intervalo específico antes de executar a macro; a segunda permite que o usuário selecione o intervalo antes ou depois de executar a macro. Você pode fazer quase tudo com o intervalo; Optei por aplicar uma cor de preenchimento por ser simples e não desviar do foco do artigo: o processo de seleção.

Estou usando o Office 365 (área de trabalho do Excel 2016) em um sistema Windows 10 de 64 bits, mas essas macros funcionarão em versões anteriores. Você pode trabalhar com sua própria pasta de trabalho ou baixar o arquivo de demonstração .xlsm, .xls e .bas (o módulo de código). A versão do Excel para navegador não oferece suporte a macros. Se você nunca criou uma macro antes, poderá aplicar as etapas deste artigo até o fim.

VEJA: Política de backup de dados do usuário final (Tech Pro Research)

Atuar em uma seleção existente

Para usar o VBA para atuar em uma seleção existente, você deve criar um objeto Range e definir esse objeto para o intervalo existente. É mais simples do que parece. Nesse caso, as instruções Dim e Set fazem o trabalho real:

Dim selectedRng As Range
Set selectedRng = Application.Selection

A instrução Dim declara um objeto Range denominado selectedRng. A instrução Set define o intervalo usando a seleção existente, fornecida pela propriedade Selection do objeto Aplicativo. Isso é tudo! Depois de definir o objeto Range, você pode agir sobre ele. Listagem A altera a cor de preenchimento do intervalo selecionado para amarelo, mas pode fazer quase tudo. Infelizmente, você não pode remover a cor de preenchimento pressionando [Ctrl]+ Z ou clicando em Desfazer.

Listagem A

Sub ApplyColor1()
'Apply RGB(255,255,0) to selected range.
Dim selectedRng As Range
'Error handling; for good measure.
On Error Resume Next
'Define selected range. 
Set selectedRng = Application.Selection
'Do something with the selection. 
With selectedRng.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 65535 'Same as RGB(255,255,0)
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
End Sub

Para adicionar o código a uma pasta de trabalho, pressione F11 para iniciar o VBE. No menu Inserir, escolha Módulo. Em seguida, adicione o código. Você pode importar a macro do arquivo .bas para download ou gravá-la você mesmo. Não copie desta página da web porque o VBE não pode interpretar caracteres especiais da web e retornará um erro. Se você estiver usando uma versão de faixa de opções do Excel, salve a pasta de trabalho como uma pasta de trabalho habilitada para macro antes de continuar.

Antes de executar esta macro, selecione uma única célula ou um intervalo contíguo ou não contíguo. Se a célula ou intervalo contiver dados, não se preocupe. A macro não sobrescreverá nada. Para fácil acesso à macro, adicione a macro à Barra de Ferramentas de Acesso Rápido ou um grupo personalizado na faixa de opções. Se você não souber como, leia Como adicionar macros do Office à barra de ferramentas QAT para acesso rápido. Esse artigo também mostrará como exibir a guia Desenvolvedor, se necessário. Você encontrará ambas as macros no QAT e em um grupo de Macros personalizadas na guia Home do arquivo demo .xlsm. É assim que vamos executar a macro:

  1. Selecione o intervalo onde deseja aplicar a cor de preenchimento amarela, por exemplo, B4: H4 e B16: H16 (Figura a) Para criar um intervalo não contíguo, selecione um dos intervalos. Em seguida, mantenha pressionada a tecla Ctrl e selecione a segunda.
  2. Clique na guia Desenvolvedor. (Leia o artigo com link acima se a guia Desenvolvedor não estiver visível.)
  3. No grupo Código, clique em Macros.
  4. Na caixa de diálogo resultante, selecione ApplyColor1 (Figura B) e clique em Executar.

Figura a

excelselectvbaa.jpg
Selecione a célula ou intervalo antes de executando a macro.

Figura B

excelselectvbab.jpg
Execute a macro ApplyColor1.

Como você pode ver em Figura C, a macro aplica a cor de preenchimento apenas ao intervalo selecionado. O que a macro faz é menos importante do que as duas declarações usadas para criar o objeto Range do intervalo existente para que você possa agir sobre ele. Isso é muito fácil, mas o que acontece se você selecionar o intervalo errado antes de executar a macro? A próxima seção cobre uma macro que trata disso.

Figura C

excelselectvbac.jpg
A macro destaca os intervalos selecionados.

VEJA: 20 dicas rápidas do Windows para usuários avançados (TechRepublic Free PDF)

Atua em uma seleção de faixa de entrada

Os usuários nem sempre irão querer selecionar o intervalo antes de executar a macro; selecionar intervalos grandes ou múltiplos pode ser complicado. A macro é Listagem B é um pouco mais fácil de usar. Permite que os usuários digitem um intervalo ou nome de intervalo ou selecione o intervalo depois de executando a macro. Também é adequado para usuários que selecionam o intervalo antes de executar a macro.

Listagem B

Sub ApplyColor2()
'Apply RGB(255,255,0) to selected or input range.
Dim selectedRng As Range
Set selectedRng = Application.Selection
'Error handling to capture Cancel key.
On Error GoTo errHandler
'Define range. 
Set selectedRng = Application.InputBox("Range", , selectedRng.Address, Type:=8)
'Do something to the selected or input range.
With selectedRng.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 65535 'Same as RGB(255,255,0)
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
'Stop before running error handling.
Exit Sub
errHandler:
'Quit sub procedure when user clicks InputBox Cancel button.
If Err.Number = 424 Then
    Exit Sub
Else: MsgBox "Error: " & Err.Number, vbOK
End If
End Sub

Insira ApplyColor2 no VBE e execute-o da mesma maneira que você fez com ApplyColor1. Esta segunda macro é semelhante à primeira, mas melhor porque é flexível. Você pode selecionar o intervalo antes ou depois de executar a macro. A macro acomoda o intervalo ativo, definindo-o como o intervalo de entrada padrão da caixa de entrada, como você pode ver em Figura D. Neste ponto, você pode manter as configurações de intervalo padrão e clicar em OK. Ou você pode inserir um novo intervalo digitando o intervalo ou nome do intervalo com o teclado ou selecionando o intervalo com o mouse. Se você pressionar Cancelar em vez de OK, o manipulador de erros será acionado e a macro será fechada antes de aplicar uma cor de preenchimento.

Figura D

excelselectvbad.jpg
O padrão da caixa de entrada é o intervalo selecionado.

Para saber mais sobre intervalos de referência, planilhas e até mesmo pastas de trabalho, leia os seguintes artigos:

Envie-me sua pergunta sobre o Office

Eu respondo às perguntas dos leitores quando posso, mas não há garantia. Não envie arquivos, a menos que seja solicitado; Os pedidos iniciais de ajuda que chegam com anexos serão excluídos não lidos. Você pode enviar capturas de tela de seus detalhes para ajudar a esclarecer sua dúvida. Quando você entrar em contato comigo, por favor, seja o mais específico possível. Por exemplo, “Solucionar problemas em minha pasta de trabalho e corrigir o problema” provavelmente não obterá uma resposta, mas “Você pode me dizer por que esta fórmula não retorna os resultados esperados?” poderia. Mencione o aplicativo e a versão que você está usando. A TechRepublic não me reembolsa pelo meu tempo ou experiência em ajudar os leitores, nem peço uma taxa dos leitores que ajudo. Você pode entrar em contato comigo em [email protected]

Leia também …

Related Posts

Como ensinar sobre mudanças climáticas online

Você está ensinando cara a cara ou totalmente online? Você está ensinando em um modelo híbrido? O seu ensino é síncrono, assíncrono, combinado ou invertido? Existem tantas maneiras diferentes de fazer o que fazemos...

Adapte-se à aprendizagem online com Interchange

Com o início da pandemia, as aulas de comunicação oral em muitas universidades no Japão mudaram para um ambiente de aprendizagem online, um conjunto desafiador de circunstâncias enfrentadas de forma semelhante por professores em...

Duas novas ferramentas Turnitin

A maioria dos professores reconhecerá essa experiência: você está corrigindo uma tarefa escrita quando se depara com uma passagem (ou mesmo alguma!) Que parece conter exemplos de plágio. Todo o seu processo de qualificação...

lên đầu trang