VBA – Selecionar (e Trabalhar com) Linhas e Colunas Inteiras
In this Article
- Selecionar Linhas ou Colunas Inteiras
- Métodos e Propriedades de Linhas e Colunas
- Excluir Linhas ou Colunas Inteiras
- Inserir Linhas ou Colunas
- Copiar e Colar Linhas ou Colunas Inteiras
- Ocultar/Reexibir Linhas e Colunas
- Agrupar/Desagrupar Linhas e Colunas
- Definir a Altura da Linha ou a Largura da Coluna
- Autofit Row Height / Column Width (Ajuste Automático da Altura da Linha / Largura da Coluna)
- Linhas e Colunas em Outras Planilhas ou Pastas de Trabalho
- Obter Linha ou Coluna Ativa
Este tutorial demonstrará como selecionar e trabalhar com linhas ou colunas inteiras no VBA.
Primeiro, abordaremos como selecionar linhas e colunas inteiras e, em seguida, demonstraremos como manipular linhas e colunas.
Selecionar Linhas ou Colunas Inteiras
Selecionar uma Única Linha
Você pode selecionar uma linha inteira com o objeto Rows da seguinte forma:
Rows(5).Select
Ou você pode usar EntireRow junto com os objetos Range ou Cells:
Range("B5").EntireRow.Select
ou
Cells(5,1).EntireRow.Select
Você também pode usar o objeto Range para se referir especificamente a uma linha:
Range("5:5").Select
Selecionar Coluna Única
Em vez do objeto Rows, use o objeto Columns para selecionar colunas. Aqui você pode fazer referência à coluna número 3:
Columns(3).Select
ou a letra “C”, entre aspas:
Columns("C").Select
Em vez de EntireRow, use EntireColumn junto com os objetos Range ou Cells para selecionar colunas inteiras:
Range("C5").EntireColumn.Select
ou
Cells(5,3).EntireColumn.Select
Você também pode usar o objeto Range para se referir especificamente a uma coluna:
Range("B:B").Select
Selecionar Várias Linhas ou Colunas
A seleção de várias linhas ou colunas funciona exatamente da mesma forma quando se usa EntireRow ou EntireColumn:
Range("B5:D10").EntireRow.Select
ou
Range("B5:D10").EntireColumn.Select
No entanto, ao usar os objetos Rows ou Columns, você deve inserir os números das linhas ou as letras das colunas entre aspas:
Rows("1:3").Select
ou
Columns("B:C").Select
Selecionar a Linha ou Coluna da Célula Ativa (ActiveCell)
Para selecionar a linha ou coluna da ActiveCell, você pode usar uma destas linhas de código:
ActiveCell.EntireRow.Select
ou
ActiveCell.EntireColumn.Select
Selecionar Linhas e Colunas em Outras Planilhas
Para selecionar Linhas ou Colunas em outras planilhas, você deve primeiro selecionar a planilha.
Sheets("Planilha2").Select
Rows(3).Select
O mesmo vale para a seleção de linhas ou colunas em outras pastas de trabalho.
Workbooks("Pasta6.xlsm").Activate
Sheets("Planilha2").Select
Rows(3).Select
Observação: Você deve ativar (activate) a pasta de trabalho desejada. Ao contrário do objeto Sheets, o objeto Workbook não tem um método Select.
A Seleção de Linhas e Colunas é Necessária?
No entanto, (quase?) nunca é necessário selecionar linhas ou colunas. Você não precisa selecionar uma linha ou coluna para interagir com elas. Em vez disso, você pode aplicar métodos ou propriedades diretamente às linhas ou colunas. As próximas seções demonstrarão diferentes métodos e propriedades que podem ser aplicados.
Você pode usar qualquer método listado acima para fazer referência a linhas ou colunas.
Métodos e Propriedades de Linhas e Colunas
Excluir Linhas ou Colunas Inteiras
Para excluir linhas ou colunas, use o método Delete:
Rows("1:4").Delete
ou:
Columns("A:D").Delete
Inserir Linhas ou Colunas
Use o método Insert para inserir linhas ou colunas:
Rows("1:4").Insert
ou:
Columns("A:D").Insert
Copiar e Colar Linhas ou Colunas Inteiras
Colar em uma Linha ou Coluna Existente
Ao copiar e colar linhas ou colunas inteiras, você precisa decidir se deseja colar sobre uma linha/coluna existente ou se deseja inserir uma nova linha/coluna para colar os dados.
Esses primeiros exemplos copiarão e colarão sobre uma linha ou coluna existente:
Range("1:1").Copy Range("5:5")
ou
Range("C:C").Copy Range("E:E")
Inserir e Colar
Os próximos exemplos colarão em uma linha ou coluna recém-inserida.
Isso copiará a linha 1 e a inserirá na linha 5, deslocando as linhas existentes para baixo:
Range("1:1").Copy
Range("5:5").Insert
Isso copiará a coluna C e a inserirá na coluna E, deslocando as colunas existentes para a direita:
Range("C:C").Copy
Range("E:E").Insert
Ocultar/Reexibir Linhas e Colunas
Para ocultar linhas ou colunas, defina suas propriedades Hidden como True. Use False para reexibir as linhas ou colunas:
'Ocultar Linhas
Rows("2:3").EntireRow.Hidden = True
'Reexibir Linhas
Rows("2:3").EntireRow.Hidden = False
ou
'Ocultar Colunas
Columns("B:C").EntireColumn.Hidden = True
'Reexibir Colunas
Columns("B:C").EntireColumn.Hidden = False
Agrupar/Desagrupar Linhas e Colunas
Se você quiser agrupar linhas (ou colunas), use um código como este:
'Agrupar Linhas
Rows("3:5").Group
'Agrupar Colunas
Columns("C:D").Group
Para remover o agrupamento, use este código:
'Desagrupar Linhas
Rows("3:5").Ungroup
'Desagrupar Colunas
Columns("C:D").Ungroup
Isso expandirá todos os níveis de contorno “agrupados”:
ActiveSheet.Outline.ShowLevels RowLevels:=8, ColumnLevels:=8
e isso recolherá todos os níveis de contorno:
ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1
Definir a Altura da Linha ou a Largura da Coluna
Para definir a largura da coluna, use esta linha de código:
Columns("A:E").ColumnWidth = 30
Para definir a altura da linha, use esta linha de código:
Rows("1:1").RowHeight = 30
Autofit Row Height / Column Width (Ajuste Automático da Altura da Linha / Largura da Coluna)
Para ajustar automaticamente uma coluna:
Columns("A:B").Autofit
Para ajustar automaticamente uma linha:
Rows("1:2").Autofit
Linhas e Colunas em Outras Planilhas ou Pastas de Trabalho
Para interagir com linhas e colunas em outras planilhas, você deve definir o objeto Sheets:
Sheets("Planilha2").Rows(3).Insert
Da mesma forma, para interagir com linhas e colunas em outras pastas de trabalho, você também deve definir o objeto Workbook:
Workbooks("Pasta1.xlsm").Sheets("Planilha2").Rows(3).Insert
Obter Linha ou Coluna Ativa
Para obter a linha ou coluna ativa, você pode usar as propriedades Row e Column do objeto ActiveCell.
MsgBox ActiveCell.Row
ou
MsgBox ActiveCell.Column
Isso também funciona com o objeto Range:
MsgBox Range("B3").Column