0178-Dica VBA: Método Union

Através do uso do método Union podemos reunir intervalos diferentes num único intervalo.

Este intervalo resultante pode ser tratado como um bloco único.

Vamos a um exemplo prático: precisamos excluir as colunas B, D, F, G, H, L, M e O de uma planilha.

É importante lembrar que se iniciarmos pela coluna B, as demais colunas serão deslocadas para a esquerda. Desta forma a coluna D para a ser a coluna C, a coluna F passa a ser a coluna E, e assim por diante. E isso se repete a cada exclusão. É preciso então excluí-las da direita para a esquerda.

O código abaixo faz exatamente isso:

Sub ExcluirColunas()
'Excluir as colunas B, D, F, G, H, L, M e O
Columns("O").Delete
Columns("M").Delete
Columns("L").Delete
Columns("H").Delete
Columns("G").Delete
Columns("F").Delete
Columns("D").Delete
Columns("B").Delete
End Sub

Que tal simplificarmos o código?

Sub ExcluirColunas()
'Excluir as colunas B, D, F, G, H, L, M e O
Union([B1], [D1], [F1], [G1], [H1], [L1], [M1], [O1]).EntireColumn.Delete

End Sub

Tudo resolvido numa única linha!

Mas o que está sendo realizado?

  • As células da primeira linha de cada coluna são unidas num único intervalo;
  • Deste intervalo são destacadas as respectivas colunas;
  • Essas colunas são excluídas conjuntamente.

Outra sintaxe para o mesmo código:

Sub ExcluirColunas()
'Excluir as colunas B, D, F, G, H, L, M e O
[B1,D1,F1:H1,L1:M1,O1].EntireColumn.Delete

End Sub

Observem que simplificamos ainda mais. Desta forma o método Union é feita de forma implícita. Separamos os intervalos descontínuos com vírgulas e os intervalos contínuos colocando coluna inicial : coluna final.

Da mesma forma que fizemos para excluir as colunas, podemos utilizar esta abordagem para, por exemplo, modificar simultaneamente a formatação da fonte, entrem três intervalos descontínuos [A1:D8], [F9:G13] e [M2:P4].

Sub FormatarFonte()
    With [A1:D8,F9:G13,M2:P4].Font
        .ColorIndex = 3
        .Name = "Arial"
        .Size = 10
        .Bold = True
        .Italic = True
    End With
End Sub

Mais um recurso poderoso e pouco divulgado do VBA.

[ ]s

Anúncios

In Excel We Trust

Marcado com: , , , ,
Publicado em Nível: Avançado

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: