Como mesclar células no excel usando código vba
No VBA, existe um método “MERGE” que você pode usar para mesclar um intervalo de células ou até mesmo vários intervalos em um. Este método possui um argumento “Across” que é opcional. Se você especificar TRUE, cada linha do intervalo será mesclada separadamente e, se você especificar FALSE, todo o intervalo será mesclado em um.
Etapas para usar VBA para mesclar células:
- Primeiro, você precisa definir o intervalo de células que deseja mesclar.
- Depois disso, digite um ponto (.) para obter a lista de propriedades e métodos e selecione “Mesclar” dessa lista ou você pode digitá-lo diretamente.
- Depois disso, você precisa definir o argumento “Across” como TRUE ou FALSE.
- No final, execute este código para mesclar o intervalo.
Aqui está o código.
Range("A1:A2").Merge False
E se quiser mesclar linhas em todo o intervalo, você pode usar TRUE para o argumento across.
Selection.Merge Across:=True
No código acima você selecionou como intervalo, método de mesclagem e através como verdadeiro. E mesclou todas as linhas do intervalo selecionado.
Agora, digamos que você queira mesclar o intervalo de células de outra planilha, não é necessário habilitá-lo primeiro. Você pode simplesmente consultar a planilha primeiro e depois usar os métodos de mesclagem com o renegado que deseja mesclar.
Worksheets("Sheet1").Range("A1:A2").Merge
Da mesma forma, você também pode fazer referência a uma pasta de trabalho especificando o nome da pasta de trabalho.
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1:A2").Merge
Mesclar um intervalo e alinhar o conteúdo da célula
Agora, ao mesclar duas ou mais células, você precisa alinhar o conteúdo que possui na célula. Veja o instantâneo abaixo, onde você mesclou as células A1 e A2 e o valor nas células está alinhado na parte inferior. Para resolver esse problema, você pode usar a propriedade de alinhamento e alinhar o conteúdo da célula ao centro e ao meio para facilitar a leitura.
With Range("A1:A2") .Merge .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With
Combine o texto e depois mescle
Vamos falar sobre um cenário da vida real. Você tem texto em um intervalo de células e precisa mesclar essas células, mas não quer perder o conteúdo que possui. Bem, você pode escrever um loop de código em todo o intervalo usando cada um e combinar o texto e adicioná-lo ao intervalo mesclado no final.
- Na primeira parte, você tem variáveis para usar para armazenar valores de intervalo e defini-los.
- Na segunda parte você tem um LOOP para combinar os valores de cada célula para criar uma nova string com ela.
- Na terceira parte, mescle o intervalo, adicione a string combinada, aplique quebra de linha e alinhe o conteúdo da célula.
Aqui está o código completo.
Sub vba_merge_with_values() Dim val As String Dim rng As Range Set rng = Range("A1:A10") For Each Cell In rng val = val & " " & Cell.Value Next Cell With rng .Merge .Value = Trim(val) .WrapText = True .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End Sub