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.
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
- A palavra-chave “Alcance”.
- Parênteses que seguem a palavra-chave
- Faixa de células relevante
- 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.
Passo 2) Nesta etapa,
- Clique em
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.
Passo 3) Na próxima etapa,
- Clique no botão Macro
no menu superior. Irá abrir a janela abaixo.
- Nesta janela, clique no botão 'editar'.
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
Passo 5) Agora salve o arquivo e execute o programa conforme mostrado abaixo.
Passo 6) Você verá que a célula “A1” está selecionada após a execução do programa.
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







