Colunas de Inserção VBA

Normalmente, na planilha do Excel, temos dois métodos diferentes para adicionar ou inserir colunas, um sendo o atalho do teclado e outro usando o método do botão direito do mouse e inserir, mas no VBA temos que usar o comando de inserção e a instrução de coluna inteira para adicionar qualquer coluna, o O truque para isso é que, se precisarmos inserir uma única coluna, fornecemos uma referência de coluna única, mas para as colunas múltiplas fornecemos referências de colunas múltiplas.

Inserir colunas no Excel usando VBA

Como parte do código VBA, podemos precisar inserir algumas colunas em nossa folha de dados para atender às nossas necessidades. Inserir coluna é a tecla de atalho fácil na planilha pressionando Ctrl +, mas que tal inserir uma nova coluna por meio do código VBA. Neste artigo sobre “VBA Insert Column”, mostraremos o processo de adição de colunas no Excel e mostraremos exemplos de diferentes cenários.

Como inserir colunas na planilha do Excel usando o VBA?

Podemos inserir colunas no VBA usando a propriedade COLUMNS e o objeto RANGE. Você deve saber porque precisamos de colunas e objetos de intervalo para inserir uma nova coluna.

Para inserir uma nova coluna, precisamos identificar depois de qual coluna precisamos inserir, sem dizer depois de qual coluna precisamos inserir como o VBA pode entender a lógica.

Por exemplo, se você deseja inserir a coluna após a coluna B, você pode construir o código assim.

Colunas (“C”)

Nota: A razão pela qual usei C para inserir uma coluna depois, porque a célula selecionada será deslocada para o lado direito.

Após as colunas serem especificadas, precisamos acessar a propriedade “Coluna Inteira”.

Colunas (“C”). ColunaIntotal

Em seguida, precisamos escolher o método “Inserir”.

Colunas (“C”). WholeColumn.Insert

Isso irá inserir a coluna após a coluna C e a coluna C existente será movida para D.

Exemplo # 1 - Inserir colunas usando objeto Range no VBA

Agora, observe a maneira de inserir a coluna usando o objeto RANGE. Para isso, considere os dados abaixo como um exemplo.

Agora eu quero inserir a coluna VBA após a coluna A, siga as etapas abaixo para construir o código.

Etapa 1: iniciar o procedimento secundário.

Passo 2: Abra o objeto Range .

Código:

 Sub ColumnInsert_Example1 () Intervalo (End Sub 

Etapa 3: Agora mencione a coluna entre aspas duplas .

Código:

 Sub ColumnInsert_Example1 () Range ("B: B") End Sub 

Passo 4: Agora escolha a propriedade Coluna Inteira .

Código:

 Sub ColumnInsert_Example1 () Intervalo ("B: B"). Ent End Sub 

Passo 5: Após selecionar a propriedade Coluna Inteira, escolha o método “Inserir” .

Código:

 Sub ColumnInsert_Example1 () Range ("B: B"). WholeColumn.ins End Sub 

Agora seu código se parece com isso.

Código:

 Sub ColumnInsert_Example1 () Range ("B: B"). WholeColumn.Insert End Sub 

Execute o código para inserir a nova coluna B.

Exemplo 2 - inserir várias colunas

Por exemplo, se você deseja inserir duas novas colunas após a coluna A, então precisamos mencionar os endereços de duas colunas.

Código:

 Sub ColumnInsert_Example1 () Range ("B: C"). WholeColumn.Insert End Sub 

O código acima irá inserir duas colunas após a coluna A.

Exemplo # 3 - Com método apenas de “inserção”

Podemos inserir uma nova coluna usando “Inserir” o único método sem acessar a propriedade Coluna Inteira. Para isso, vamos entender a sintaxe do método “inserir”.

Expression.Insert ([Shift], [Copiar origem])

[Shift]: Quando inserimos a nova coluna, se precisamos que as colunas se desloquem para o lado direito ou para o lado negativo no caso de linhas. Aqui podemos usar duas opções “xlToRight” e “xlDownTo”

[Origem da cópia]: Isso especificará o formato da coluna recém-inserida. Se você precisa do formato do lado esquerdo da coluna ou das células acima. Aqui podemos usar duas opções “xlFormatFromLeftOrAbove” e “xlFormatFromRightOrBelow”.

Abaixo está o código de exemplo para você.

 Sub ColumnInsert_Example1 () Intervalo ("B: B"). Inserir Shift: = xlToRight, Copyorigin: = xlFormatFromLeftOrAbove End Sub 

Exemplo 4 - Inserir colunas usando a propriedade COLUMNS no VBA

Vimos como inserir colunas em VBA usando o objeto RANGE, agora mostraremos que podemos inserir colunas usando a propriedade “COLUMNS”.

Abra a propriedade COLUMNS.

Código:

 Sub ColumnInsert_Example2 () Colunas (End Sub 

Podemos especificar a coluna de duas maneiras aqui. Um está usando as referências alfabéticas usuais e o outro está usando os números das colunas.

Se você quiser inserir a coluna após a coluna A, o código será COLUNAS (“B”). Se você estiver usando referência numérica, o código será COLUNAS (2).

Código:

Sub ColumnInsert_Example2 () Colunas ("B"). End Sub

Agora, o problema para você surge porque quando usamos a propriedade COLUMNS, não temos acesso à lista do IntelliSense.

Código:

 Sub ColumnInsert_Example2 () Colunas ("B"). Entir End Sub 

Aqui, precisamos ter certeza do que estamos fazendo. Portanto, esta é a razão pela qual mostrei primeiro o objeto RANGE.

Código:

 Sub ColumnInsert_Example2 () Colunas ("B: B"). WholeColumn.Insert End Sub 

Exemplo # 5 - inserir colunas alternativas

Suponha que você tenha os dados como a imagem abaixo.

Se você deseja inserir novas colunas após cada linha alternativa, precisamos usar loops VBA. Abaixo o código, o código feito sob medida para você.

Código:

 Sub ColumnInsert_Example3() Dim k As Integer Columns(2).Select For k = 2 To 8 ActiveCell.EntireColumn.Insert ActiveCell.Offset(0, 2).Select Next k End Sub 

This will insert the column like this.

Example #6 – Insert Column Based on Cell Value

We can also insert a column based on cell value as well. For example, look at the below data.

Here I want to insert the column if the first-row cell value is “Year” and my data should like this after inserting new columns.

Use the below code to perform this task.

Code:

 Sub ColumnInsert_Example4() Dim k As Integer Dim x As Integer x = 2 For k = 2 To 12 If Cells(1, x).Value = "Year" Then Cells(1, x).EntireColumn.Insert x = x + 1 End If x = x + 1 Next k End Sub 

You can download this VBA Insert Columns Excel here. VBA Insert Columns Excel Template