Como inserir colunas usando vba?

Neste tutorial, veremos como inserir uma coluna usando código VBA no Excel. Também exploraremos quais são as diferentes maneiras de escrever uma macro para isso.

Insira uma única coluna usando VBA

Para inserir uma coluna usando código VBA, você precisa usar a propriedade “Coluna inteira” com o método “Inserir”. Com a propriedade da coluna inteira, você pode referenciar a coluna inteira usando uma célula e depois inserir uma nova coluna. Por padrão, ele inserirá uma coluna antes da célula que você mencionou.

inserir coluna única usando vba
  1. Primeiro, especifique uma célula usando o objeto range.
  2. Agora insira um ponto (.) para obter a lista de propriedades e métodos.
  3. Depois disso, selecione a propriedade “Coluna inteira” ou digite-a.
  4. Ao final, insira um ponto final (.) novamente e selecione o método “Inserir” ou digite-o.
 Range("A1").EntireColumn.Insert

Seu código está pronto aqui para inserir uma coluna. Agora, quando você executa este código, ele insere instantaneamente uma nova coluna antes da coluna A.

Insira várias colunas

Existem duas maneiras de inserir várias colunas em uma planilha que encontrei. O primeiro é o mesmo método de inserção que usamos no exemplo acima. Com isso, você precisa especificar um intervalo de colunas cujo número seja igual ao número da coluna que deseja inserir.

Agora suponha que você queira inserir 5 colunas após a coluna C caso possa usar um código como este.

inserir múltiplas colunas
 Range("C:G").EntireColumn.Insert

Para ser sincero, não achei esse método muito útil porque você precisa alterar o intervalo se quiser alterar o código em si. Então, aqui está o segundo método.

 'variables to use in the code Dim iCol As Long Dim iCount As Long Dim i As Long 'to get the number of columns that you want to insert with an input box iCount = InputBox(Prompt:="How many column you want to add?") 'to get the column number where you want to insert the new column iCol = InputBox _ (Prompt:= _ "After which column you want to add new column? (Enter the column number)") 'loop to insert new column(s) For i = 1 To iCount Columns(iCol).EntireColumn.Insert Next i

Ao executar este código, ele solicita que você insira o número de colunas que deseja adicionar e, em seguida, o número da coluna onde deseja adicionar todas essas novas colunas. Ele usa um loop FOR (For Next) para inserir o número de colunas que você mencionou.

Inserir colunas com base nos valores das células

Se quiser inserir colunas com base em um valor de célula, você pode usar o código a seguir.

 Dim iCol As Long Dim iCount As Long Dim i As Long iCount = Range("A1").Value iCol = Range("B1").Value For i = 1 To iCount Columns(iCol).EntireColumn.Insert Next i

Quando você executa esta macro, ela pega o número de colunas da célula A1 e a coluna à qual deseja adicionar colunas da célula B1.

Inserir uma coluna sem formatação

Ao inserir uma coluna onde a coluna acima possui uma formatação específica, nesse caso a coluna também terá essa formatação automaticamente. E a maneira mais fácil de lidar com essa situação é usar formatos claros. Considere o seguinte código.

 Columns(7).EntireColumn.Insert Columns(7).ClearFormats

Quando você executa o código acima, ele insere uma nova coluna antes da coluna. Agora o que acontece é que quando você insere uma coluna antes da coluna, essa nova coluna passa a ser a coluna, então a segunda linha de código limpa os formatos dela.

Inserir uma coluna copiada

Você também pode usar o mesmo método para copiar uma coluna e inseri-la em outro lugar. Veja o código a seguir.

 Application.CutCopyMode = False With Worksheets("Data") .Columns(5).Copy .Columns(9).Insert Shift:=xlShiftDown End With Application.CutCopyMode = True

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *