Inserir Linha ou Coluna com VBA
In this Article
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:
Este exemplo irá inserir uma linha, herdando a formatação da linha de cima.
Rows(5).Insert , xlFormatFromLeftOrAbove
Este exemplo irá inserir uma linha herdando a formatação das linha de baixo.
Rows(5).Insert , xlFormatFromRightOrBelow
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