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






