Inserir Linha ou Coluna com VBA

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on April 21, 2022

Este tutorial irá demonstrar com usar o VBA para inserir linhas e colunas no Excel.

Para inserir linhas ou colunas utilizaremos o Método Insert.

Inserir uma Única Linha ou Coluna

Inserir Nova Linha

Para inserir uma linha única, você pode utilizar o Objeto Rows:

Rows(4).Insert

Ou você pode utilizar o Objeto Range junto com EntireRow:

Range("b4").EntireRow.Insert

Inserir Nova Coluna

De forma semelhante a que usamos para inserir linhas, podemos utilizar o Objeto Columns para inserir uma nova coluna:

Columns(4).Insert

Ou podemos utilizar o Objeto Range, junto com EntireColumn:

Range("b4").EntireColumn.Insert

Inserir Várias Linhas ou Colunas

Inserir Várias Linhas

Ao inserir várias linhas com o Objeto Rows, você deve colocar as linhas entre aspas:

Rows("4:6").Insert

Para inserir múltiplas linhas com o Objeto Range, funciona da mesma forma como quando inserimos uma única linha:

Range("b4:b6").EntireRow.Insert

Inserir Várias Colunas

Ao inserir várias colunas com o Objeto Columns, informe as letras das colunas entre aspas:

Columns("B:D").Insert

Para inserir múltiplas colunas com o Objeto Range, funciona da mesma forma que quando inserimos uma única:

Range("b4:d4").EntireColumn.Insert

Insert – Argumentos Shift & CopyOrigin

O Método Insert tem dois argumentos opcionais:

  • Shift – Usado para indicar para qual direção as células devem ser deslocadas
  • CopyOrigin – Usado para indicar qual formatação de célula deve ser copiada (acima, abaixo, esquerda, ou direita)

O argumento Shift é irrelevante (não é considerado) quando inserimos linhas ou colunas inteiras. Não importa qual argumento Shift você insira, para linhas inteiras, o deslocamento será sempre para baixo e para colunas inteiras, o deslocamento será sempre pra a direita:

  • xlShiftDown – Desloca as células para baixo.
  • xlShiftToRight – Desloca as células para a direita.

Como você pode ver, não é possível deslocar uma linha ou coluna inteira pra a cima ou para a esquerda.

O argumento CopyOrigin tem duas entradas potenciais:

  • xlFormatFromLeftorAbove – (0) Células recém-inseridas adquirem a formatação das células acima ou à esquerda.
  • xlFormatFromRightorBelow (1) Células recém-inseridas adquirem a formatação das células abaixo ou à direita.

Vejamos alguns exemplos do argumento CopyOrigin. Nossos dados iniciais são:

vba inserir linha

Este exemplo irá inserir uma linha, herdando a formatação da linha de cima.

Rows(5).Insert , xlFormatFromLeftOrAbove

vba inserir linha acima

Este exemplo irá inserir uma linha herdando a formatação das linha de baixo.

Rows(5).Insert , xlFormatFromRightOrBelow

vba inserir linha abaixo

Outros Exemplos com o Método Insert

Inserir Linhas ou Colunas Copiadas

Se você quiser inserir uma linha copiada, você usaria o código abaixo:

Range("1:1").Copy
Range("5:5").Insert

Aqui estamos copiando a Linha 1 e Inserindo na Linha 5.

Inserir Linhas Baseado no Valor da Célula

Este exemplo fará um loop através de um intervalo, inserindo linhas baseado nos valores da célula:

Sub InserirLinhascomValorEspecifico()
 
Dim cell As Range
 
For Each cell In Range("b2:b20")
    If cell.Value = "Inserir" Then
        cell.Offset(1).EntireRow.Insert
    End If
Next cell
 
End Sub

Deletar Linhas ou Colunas

Para deletar linhas ou colunas, basta utilizar o método Delete.

Rows(1).Deletet

Range("a1").EntireRow.Delete

Columns(1).Delete

Range("a1").EntireColumn.Delete
vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA