VBA Select, Row, Column


VBA Select

É muito comum ao se utilizar o gravador de macros existirem métodos .Select no código gravado, junto ao objeto Range.

.Select é usado para selecionar um ou mais elementos do Excel (assim como pode ser feito com o mouse), permitindo posteriormente algumas manipulações com a seleção.

Selecionando células com o mouse:

Selecionar com o mouse

Selecionando células com o VBA:

    'Range([célula1],[célula2])
    Range(Cells(1, 1), Cells(9, 5)).Select
    Range("A1", "E9").Select
    Range("A1:E9").Select

Todas as linhas de código acima fazem a mesma ação: selecionar o intervalo partindo de "A1" até "E9".

Selecionar com VBA

VBA Select CurrentRegion

Se existem células preenchidas por dados sem intervalos vazios entre elas, uma opção para uma seleção automática é a propriedade CurrentRegion.

CurrentRegion irá demarcar, a partir de um Range, toda área preenchida com dados.

    Range("A1").CurrentRegion.Select
CurrentRegion

Atenção para que não existam intervalos vazios entre os valores, pois o CurrentRegion mapeará a região através de células ajacentes (horizontal, vertical e diagonal).

  Range("A1").CurrentRegion.Select

Com todos os dados adjacentes

CurrentRegion dados completos

Nem todos os dados adjacentes

CurrentRegion dados faltando

Não é selecionado a célula "C4" pois ela não está imediatamente adjacente a nenhuma célula preenchida.


VBA ActiveCell

A propriedade ActiveCell faz referência a célula ativa da planilha. No caso de uma seleção, é a única célula que fica em branco.

Uma planilha possui apenas uma única célula ativa.

    Range("B2:C4").Select
    ActiveCell.Value = "Ativa"
ActiveCell

A propriedade AtiveCell costuma ser a primeira célula (superior esquerda) do Range, sendo diferente disso normalmente quando a seleção é feita manualmente pelo usuário (sem auxilio de macros).

ActiveCell Embaixo

A propriedade AtiveCell é utilizada em comandos mais avançados, como Resize.


VBA Selection

Após selecionar as células desejadas, podemos utilizar Selection para nos referenciarmos a ela e assim realizarmos as alterações desejadas:

    Range("A1:D7").Select
    Selection = 7
Exemplo Selection

Selection também aceita métodos e propriedades (que variam de acordo com o que foi selecionado).

    Selection.ClearContents 'Apaga apenas o conteúdo da seleção
    Selection.Interior.Color = RGB(255, 255, 0) 'Adiciona cor ao fundo à seleção
Clear Selection

Como no caso foi selecionado um intervalo de células, o Selection se comportará similarmente a um Range. Portanto, Selection também deverá aceitar a propriedade .Interior.Color.

RGB (Red Green Blue) é um sistema de cores aditivo altamente difundido e utilizado em inúmeras aplicações e linguagens. Seus valores de entrada para cada cor, no caso do exemplo, vão de 0 até 255.


Selection FillDown

Caso exista a necessidade de se replicar uma fórmula para toda uma seleção, é possível utilizar o método .FillDown

    Selection.FillDown

Antes do FillDown

Antes do FillDown

Depois do FillDown

Depois do FillDown

.FillDown é um método aplicável a Range. Como Selection é referente a um intervalo de células (equivalente a um Range), logo o método será aceito.

.FillDown replica a fórmula da primeira linha do Range/Selection, independente de qual for a ActiveCell.

.FillDown pode ser usado em intervalos maiores que uma coluna (E.g. Range("B1:C2").FillDown replicará as fórmulas de B1 e C1 para B2 e C2 respectivamente).


VBA EntireRow e EntireColumn

É possível selecionar uma ou múltiplas linhas ou colunas inteiras com o VBA.

    Range("B2").EntireRow.Select
    Range("C3:D3").EntireColumn.Select
EntireColumn Select

A seleção sempre será referente ao último comando executado com Select.

Para se inserir uma linha, basta utilizar o método Insert.

    Range("A7").EntireRow.Insert
    'Neste caso, conteúdo da sétima linha será deslocado para baixo

Para se deletar uma linha, basta utilizar o método Delete.

    Range("A7").EntireRow.Delete
    'Neste caso, conteúdo da oitava linha será deslocado para a sétima

VBA Rows e Columns

Do mesmo modo que EntireRow e EntireColumn é possível utilizar Rows e Columns para selecionar uma linha ou uma coluna.

    Columns(5).Select
    Rows(3).Select
Rows Select

Para ocultar linhas:

    Range("A1:C3").Rows.Hidden = True
Hidden Cells

Foram ocultadas no exemplo as linhas de 1 a 3 da planilha.


VBA Row e Column

Row (linha) e Column (coluna) são propriedades muito utilizadas para se obter o endereço, em forma numérica, da primeira linha e da primeira coluna de uma seleção ou de uma célula específica.

    Range("A3:H30").Row 'Referente a linha; retorna 3
    Range("B3").Column  'Referente a coluna; retorna 2

Os resultados de Row e Column são muitas vezes empregados em loops ou em redimensionamentos.



Fixando o Aprendizado

Exercício Sugerido

Ordem Crescente


SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.

Excel ® é uma marca registrada da Microsoft Corporation.

© 2024 SuperExcelVBA | SOBRE

Protected by Copyscape