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.
- Primeiro, especifique uma célula usando o objeto range.
- Agora insira um ponto (.) para obter a lista de propriedades e métodos.
- Depois disso, selecione a propriedade “Coluna inteira” ou digite-a.
- 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.
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 7ª coluna. Agora o que acontece é que quando você insere uma coluna antes da 7ª coluna, essa nova coluna passa a ser a 7ª 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