Objeto de intervalo VBA do Excel

⚡ Resumo Inteligente

O objeto Range do VBA do Excel representa uma célula ou um grupo de células em uma planilha. Esta página explica a hierarquia de objetos, as propriedades Range e Cells, a seleção e a referência a células, a leitura e a gravação de valores e a propriedade Offset.

  • 🎯 Definição: O objeto Range aponta para uma única célula, uma linha, uma coluna, uma seleção ou um intervalo tridimensional.
  • 🧬 Hierarquia: Uma referência completa e qualificada inclui: Aplicativo, Cadernos de Exercícios, Planilhas e, por fim, Intervalo.
  • 🏷️ Propriedades e métodos: Uma propriedade armazena informações sobre o objeto, e um método executa uma ação como Selecionar ou Mesclar.
  • 🔢 Propriedade das células: Cells(Row, Column) referencie uma célula por número, o que é adequado para um loop de programação.
  • ✍️ Leitura e escrita: A propriedade Value recupera o conteúdo de uma célula e também grava novos conteúdos.
  • ↔️ Propriedade de deslocamento: O comando Offset move uma referência um número definido de linhas e colunas a partir de sua célula inicial.

Objeto de intervalo VBA do Excel

O que é intervalo VBA?

O objeto de intervalo VBA representa uma célula ou várias células em sua planilha do Excel. É o objeto mais importante do Excel VBA. Ao usar o objeto de intervalo Excel VBA, você pode consultar,

  • Uma única célula
  • Uma linha ou coluna de células
  • Uma seleção de células
  • Uma gama 3D

Como discutimos em nosso tutorial anterior, o VBA é usado para gravar e executar um MacroMas como o VBA identifica quais dados na planilha precisam ser processados? É aí que os objetos Range do VBA são úteis.

Introdução à referência de objetos em VBA

Fazendo referência ao objeto de intervalo VBA do Excel e ao qualificador de objeto.

  • Qualificador de objeto: Isso é usado para referenciar o objeto. Ele especifica a pasta de trabalho ou planilha à qual você está se referindo.

Para manipular esses valores de células, Propriedades e O Propósito são usados.

  • Propriedade: Uma propriedade armazena informações sobre o objeto.
  • Método: Um método é uma ação do objeto que ele executará. O objeto Range pode executar ações como selecionar, copiar, limpar, classificar, etc.

O VBA segue um padrão de hierarquia de objetos para referenciar um objeto no Excel. Você precisa seguir a estrutura abaixo. Lembre-se, o ponto (.) aqui conecta o objeto em cada um dos diferentes níveis.

Aplicativo.Workbooks.Worksheets.Range

Essa hierarquia pode ser alcançada por meio de duas propriedades diferentes, sendo a propriedade Range a mais utilizada.

Como fazer referência ao objeto Range VBA do Excel usando a propriedade Range

A propriedade Range pode ser aplicada em dois tipos diferentes de objetos.

  • Objetos de planilha
  • Objetos de alcance

Sintaxe para propriedade Range

  1. A palavra-chave “Alcance”.
  2. Parênteses que seguem a palavra-chave
  3. Faixa de células relevante
  4. Cotação (" ")
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")

Quando você se refere ao objeto Range, como mostrado acima, ele é referido como referência totalmente qualificadaVocê especificou ao Excel exatamente qual intervalo deseja, em qual planilha e em qual aba.

Exemplo: MensagemBox Planilhas("Planilha1").Intervalo("A1").Valor

Usando a propriedade Range, você pode executar muitas tarefas como,

  • Consulte uma única célula usando a propriedade range
  • Consulte uma única célula usando a propriedade Worksheet.Range
  • Consulte uma linha ou coluna inteira
  • Consulte as células mescladas usando a propriedade Worksheet.Range e muito mais

Como tal, será demasiado longo para cobrir todos os cenários para a propriedade range. Para os cenários mencionados acima, demonstraremos um exemplo apenas para um. Consulte uma célula única usando a propriedade range.

Consulte uma única célula usando a propriedade Worksheet.Range

Para se referir a uma célula específica, passe o endereço dela para a propriedade Range como uma cadeia de texto.

A sintaxe é simples “Intervalo (“Célula”)”.

Aqui, usaremos o comando “.Select” para selecionar a única célula da planilha.

Passo 1) Nesta etapa, abra o Excel.

Célula única usando a propriedade Worksheet.Range

Passo 2) Nesta etapa,

  • Clique em Célula única usando a propriedade Worksheet.Range botão.
  • Isso abrirá uma janela.
  • Digite o nome do seu programa aqui e clique no botão 'OK'.
  • Isso o levará ao arquivo Excel principal. No menu superior, clique no botão 'parar' de gravação para interromper a gravação da macro.

Célula única usando a propriedade Worksheet.Range

Passo 3) Na próxima etapa,

  • Clique no botão Macro Célula única usando a propriedade Worksheet.Range no menu superior. Irá abrir a janela abaixo.
  • Nesta janela, clique no botão 'editar'.

Célula única usando a propriedade Worksheet.Range

Passo 4) A etapa acima abrirá o editor de código VBA para o arquivo chamado “Intervalo de Células Únicas”. Insira o código conforme mostrado abaixo para selecionar o intervalo “A1” da planilha do Excel.

Sub SingleCellRange()
    Range("A1").Select
End Sub

Célula única usando a propriedade Worksheet.Range

Passo 5) Agora salve o arquivo Célula única usando a propriedade Worksheet.Range e execute o programa conforme mostrado abaixo.

Célula única usando a propriedade Worksheet.Range

Passo 6) Você verá que a célula “A1” está selecionada após a execução do programa.

Célula única usando a propriedade Worksheet.Range

Da mesma forma, você pode selecionar uma célula com um nome específico. Por exemplo, se você quiser pesquisar uma célula com o nome “Guru99- Tutorial de VBA”. Você precisa executar o comando conforme mostrado abaixo. Ele selecionará a célula com esse nome.

Faixa("Guru99- Tutorial de VBA”.Selecione

Para aplicar outro objeto de intervalo, aqui está o exemplo de código.

Faixa para seleção de célula no Excel Intervalo declarado
Para linha única Faixa (“1:1”)
Para coluna única Intervalo(“A:A”)
Para células contíguas Faixa (“A1:C5”)
Para células não contíguas Faixa (“A1:C5, F1:F5”)
Para interseção de dois intervalos Faixa (“A1:C5 F1:F5”)
(Para células de interseção, lembre-se de que não há operador vírgula)
Para mesclar células Faixa (“A1:C5”)
(Para mesclar células, use o comando “mesclar”)

Selecionar uma célula é apenas o primeiro passo. Na prática, uma macro lê o conteúdo de uma célula e escreve um novo valor de volta.

Como ler e gravar valores com o objeto Range

Quase todas as macros que interagem com uma planilha fazem uma de duas coisas: leem um valor de uma célula ou escrevem um valor nela. Ambas utilizam a propriedade Valor e nenhuma delas exige que a célula esteja selecionada previamente.

Sub ReadAndWrite()
    Dim Price As Double
    Dim Qty As Long

    ' Read two values out of the sheet
    Price = Range("B1").Value
    Qty = Range("B2").Value

    ' Write the calculated result back
    Range("B3").Value = Price * Qty

    ' Fill a whole block in one statement
    Range("D1:D10").Value = "Guru99"

    ' Clear only the contents, keeping the formatting
    Range("F1:F10").ClearContents
End Sub

Quatro pontos tornam esse padrão confiável.

  • A opção Selecionar não é obrigatória: Conteúdos Range(“B3”).Value = 10 É mais rápido e seguro do que selecionar a célula primeiro. As macros gravadas estão cheias de `.Select` porque o gravador espelha as ações do mouse, não porque o código precise disso.
  • Valor versus Texto: .Value retorna os dados subjacentes, enquanto .Text retorna a string formatada exibida na tela, que pode ser truncada pela largura da coluna. Leia .Value em cálculos.
  • Blocos inteiros em uma única linha: Atribuir a um intervalo de várias células preenche todas as células de uma só vez, o que é muito mais rápido do que procurar.ping.
  • Esclareça a questão correta: ClearContents remove apenas os valores, Clear remove também a formatação e Delete remove as células e desloca as células ao redor.

Uma propriedade de intervalo (Range) referencie uma célula pela sua letra e número. Uma segunda propriedade referencie a mesma célula por dois números.

Propriedade da célula

Da mesma forma que o intervalo, em VBA Você também pode usar a propriedade "Cell". A única diferença é que ela possui uma propriedade "item" que você usa para referenciar as células da sua planilha. A propriedade "Cell" é útil em um loop de programação.

Por exemplo, nos

Cells.item(Linha, Coluna). Ambas as linhas abaixo se referem à célula A1.

  • Cells.item(1,1) OU
  • Células.item(1,”A”)

Diferença entre intervalo e células em VBA

Os operadores Range e Cells acessam as mesmas células da planilha por caminhos diferentes, e a escolha correta torna o código mais curto e fácil de ler.

Ponto de diferença Variação Células
Formato de endereço Uma cadeia de texto, Range(“A1”) Dois números, Células(1, 1)
Múltiplas células Sim, Range(“A1:C5”) Uma célula de cada vez
Dentro de um loop Requer concatenação de strings O número da linha pode ser o contador do loop.
legibilidade Corresponde ao endereço que você vê no Excel. A coluna 27 é mais difícil de visualizar do que AA.
Uso combinado Range(Cells(1, 1), Cells(5, 3)) constrói o intervalo A1:C5 a partir de números

A regra prática é usar Range para um endereço fixo que você possa ler rapidamente e Cells sempre que um número de linha ou coluna for calculado em tempo de execução.

Propriedade de deslocamento de intervalo

A propriedade de deslocamento de intervalo selecionará linhas/colunas longe de sua posição original. Com base no intervalo declarado, as células são selecionadas. Veja o exemplo abaixo.

Por exemplo, nos

Range("A1").Offset(RowOffset:=1, ColumnOffset:=1).Select

O resultado será a célula B2. A propriedade de deslocamento moverá a célula A1 uma coluna e uma linha para a frente. Você pode alterar os valores de DeslocamentoDaLinha/DeslocamentoDaColuna conforme necessário. Você pode usar um valor negativo (-1) para mover as células para trás.

Baixe o Excel contendo o código acima

Baixe a planilha do Excel acima. Code

Perguntas Frequentes

Use Cells(Rows.Count, 1).End(xlUp).Row. Ele começa na parte inferior da coluna A e salta para a última célula que contém dados, o que é mais confiável do que UsedRange depois que as linhas foram excluídas.

Cada operação de leitura ou gravação envolve o uso do VBA e do Excel. Carregue o intervalo em uma matriz com uma única atribuição, processe a matriz na memória e, em seguida, grave-a de volta em uma única instrução. Desativar a atualização da tela também ajuda.

Geralmente, trata-se de um endereço inválido, um nome de planilha inexistente ou uma tentativa de selecionar um intervalo em uma planilha que não está ativa. Qualifique a referência com a planilha ou ative a planilha primeiro.

Sim. Cole o código gravado e um assistente de IA substituirá cada par `Select` e `Selection` por uma referência direta e totalmente qualificada ao intervalo (Range). Execute ambas as versões em uma cópia e compare a planilha antes de manter.ping o troco.

Sim. Descreva o objetivo, como por exemplo, todas as linhas preenchidas nas colunas A a D da planilha de Dados, e um assistente de IA retornará a expressão de intervalo correspondente. Verifique-a com uma pequena amostra antes de executá-la em dados reais.

Resuma esta postagem com: