Objeto de intervalo (Excel)

Representa uma célula, uma linha, uma coluna, uma seleção de células contendo um ou mais blocos contíguos de células ou um intervalo 3D.

Observação

Interessado em desenvolver soluções que ampliem a experiência do Office em várias plataformas? Confira o novo modelo de Suplementos do Office. Os suplementos do Office ocupam um pequeno espaço em comparação com os suplementos e as soluções do VSTO, e você pode criá-los usando quase qualquer tecnologia de programação da Web, como o HTML5, JavaScript, CSS3 e XML.

Comentários

O membro padrão de Intervalo encaminha chamadas sem parâmetros para a propriedade Value e chamadas com parâmetros para o membro Item. Portanto, someRange = someOtherRange é equivalente a someRange.Value = someOtherRange.Value, someRange(1) a someRange.Item(1) e someRange(1,1) a someRange.Item(1,1).

As seguintes propriedades e métodos para retornar um objeto Intervalo estão descritas na seção Exemplo:

Exemplo

Use o Intervalo (arg), onde arg nomeia o intervalo, para retornar um objeto de Intervalo que representa uma única célula ou intervalo de células. O exemplo a seguir coloca o valor da célula A1 na célula A5.

Worksheets("Sheet1").Range("A5").Value = _ 
    Worksheets("Sheet1").Range("A1").Value

O exemplo a seguir preenche o intervalo A1:H8 com números aleatórios ao definir a fórmula para cada célula no intervalo. Quando ele é usado sem um qualificador de objeto (um objeto à esquerda do período), a propriedade Range retorna um intervalo na planilha ativa. Se a planilha ativa não for uma planilha, o método falhará.

Use o método Ativar do objeto planilha para ativar uma planilha antes de usar a propriedade Intervalo sem um qualificador explícito de objeto.

Worksheets("Sheet1").Activate 
Range("A1:H8").Formula = "=Rand()"    'Range is on the active sheet

O exemplo a seguir limpa o conteúdo do intervalo chamado Criteria.

Observação

Se você usar um argumento de texto para o endereço do intervalo, terá que especificar o endereço em notação de estilo A1 (ou seja, não poderá usar a notação de estilo R1C1).

Worksheets(1).Range("Criteria").ClearContents

Use Células em uma planilha para obter um intervalo contendo todas as células únicas na planilha. Você pode acessar as células únicas através de Item (linha, coluna), onde linha é o índice de linhas e coluna é o índice de colunas. Item pode ser omitido já que a ligação é encaminhada pelo membro padrão de Intervalo. O exemplo a seguir define o valor da célula A1 como 24 e da célula B1 como 42 na primeira planilha da pasta de trabalho ativa.

Worksheets(1).Cells(1, 1).Value = 24
Worksheets(1).Cells.Item(1, 2).Value = 42

O exemplo a seguir define a fórmula para a célula A2.

ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"

Embora você também possa usar Range("A1") para retornar a célula A1, poderá haver momentos em que a propriedade Cells seja mais conveniente porque você pode usar uma variável para a linha ou coluna. O exemplo a seguir cria títulos de coluna e de linha na Planilha1. Lembre-se de que, depois que a planilha for ativada, a propriedade Cells poderá ser usada sem uma declaração de planilha explícita (ela retorna uma célula na planilha ativa).

Observação

Apesar de você poder usar funções de cadeia de caracteres do Visual Basic para alterar referências de estilo A-1, é mais fácil (e uma prática de programação muito melhor) usar a notação Cells(1, 1).

Sub SetUpTable() 
Worksheets("Sheet1").Activate 
For TheYear = 1 To 5 
    Cells(1, TheYear + 1).Value = 1990 + TheYear 
Next TheYear 
For TheQuarter = 1 To 4 
    Cells(TheQuarter + 1, 1).Value = "Q" & TheQuarter 
Next TheQuarter 
End Sub

Use_expression_.Cells, onde expression é uma expressão que retorna um objeto de Intervalo, para obter um intervalo com o mesmo endereço, que consiste em células únicas. Nesse intervalo, você acessa células únicas através de Item(linha, coluna), onde são relativas ao canto superior esquerdo da primeira área do intervalo. Item pode ser omitido já que a ligação é encaminhada pelo membro padrão de Intervalo. O seguinte exemplo define a fórmula da célula C5 e D5 da primeira planilha da pasta de trabalho ativa.

Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=Rand()"
Worksheets(1).Range("C5:C10").Cells.Item(1, 2).Formula = "=Rand()"

Use o Intervalo (célula1, célula2), onde célula1 e célula2 são objetos de Intervalo que especificam o começo e o fim das células, para retornar um objeto de intervalo. O exemplo a seguir define o estilo de linha de borda para as células A1:J10.

Observação

Lembre-se que o ponto na frente de cada ocorrência da propriedade Células será necessário se o resultado da instrução With precedente dever ser aplicado à propriedade Células. Neste caso, indica que as células estão na planilha um (sem o ponto, a propriedade Células retornaria células na planilha ativa).

With Worksheets(1) 
    .Range(.Cells(1, 1), _ 
        .Cells(10, 10)).Borders.LineStyle = xlThick 
End With

Use Linhas em uma planilha para obter um intervalo que consiste em todas as linhas da planilha. Você pode acessar linhas únicas através de Item(linha), onde linha é o índice de linha. Item pode ser omitido já que a ligação é encaminhada pelo membro padrão de Intervalo.

Observação

Não é permitido fornecer o segundo parâmetro do Item para intervalos que consistem em linhas. Primeiro, você precisa convertê-lo em células únicas através de Células.

O seguinte exemplo apaga as linhas 5 e 10 da primeira planilha da pasta de trabalho ativa.

Worksheets(1).Rows(10).Delete
Worksheets(1).Rows.Item(5).Delete

Use Colunas em uma planilha para obter um intervalo que consiste em todas as colunas na planilha. Você pode acessar colunas únicas através de Item(linha) [sic], onde linha é o índice de coluna dado como um número ou como um endereço de coluna no estilo A1. Item pode ser omitido já que a ligação é encaminhada pelo membro padrão de Intervalo.

Observação

Não é permitido fornecer o segundo parâmetro do Item para intervalos que consistem em colunas. Primeiro, você precisa convertê-lo em células únicas através de Células.

O exemplo a seguir apaga as colunas “B”, “C”, “E” e “J” da primeira planilha da pasta de trabalho ativa.

Worksheets(1).Columns(10).Delete
Worksheets(1).Columns.Item(5).Delete
Worksheets(1).Columns("C").Delete
Worksheets(1).Columns.Item("B").Delete

Use _expression_.Rows, onde expression é uma expressão que retorna um objeto de Intervalo, para obter um intervalo que consiste em linhas na primeira área do intervalo. Você pode acessar as linhas únicas através de Item(linha), onde linha é o índice de linha relativo da parte superior da primeira área do intervalo. Item pode ser omitido já que a ligação é encaminhada pelo membro padrão de Intervalo.

Observação

Não é permitido fornecer o segundo parâmetro do Item para intervalos que consistem em linhas. Primeiro, você precisa convertê-lo em células únicas através de Células.

O exemplo a seguir apaga os intervalos C8:D8 e C6:D6 da primeira planilha da pasta de trabalho ativa.

Worksheets(1).Range("C5:D10").Rows(4).Delete
Worksheets(1).Range("C5:D10").Rows.Item(2).Delete

Use_expression_.Columns, onde expression é uma expressão que retorna um objeto de Intervalo, para obter um intervalo que consiste em colunas na primeira área do intervalo. Você pode acessar colunas únicas através de Item(linha) [sic], onde linha é o índice de coluna relativo à esquerda da primeira área do intervalo dado como um número ou como um endereço de coluna no estilo A1. Item pode ser omitido já que a ligação é encaminhada pelo membro padrão de Intervalo.

Observação

Não é permitido fornecer o segundo parâmetro do Item para intervalos que consistem em colunas. Primeiro, você precisa convertê-lo em células únicas através de Células.

O exemplo a seguir apaga os intervalos L2:10, G2:G10, F2:F10 e D2:D10 da primeira planilha da pasta de trabalho ativa.

Worksheets(1).Range("C5:Z10").Columns(10).Delete
Worksheets(1).Range("C5:Z10").Columns.Item(5).Delete
Worksheets(1).Range("C5:Z10").Columns("D").Delete
Worksheets(1).Range("C5:Z10").Columns.Item("B").Delete

Use Deslocamento (linha, coluna), onde linha e coluna são os deslocamentos de linha e coluna, para retornar a um intervalo em um deslocamento especificado para outro intervalo. O exemplo a seguir seleciona a célula três linhas abaixo e uma coluna à direita da célula no canto superior esquerdo da seleção atual. Não é possível selecionar uma célula que não estiver na planilha ativa; portanto, você deve primeiro ativar a planilha.

Worksheets("Sheet1").Activate 
  'Can't select unless the sheet is active 
Selection.Offset(3, 1).Range("A1").Select

Use União (intervalo1, intervalo2,...) para retornar a área de vários intervalos — ou seja, intervalos compostos por dois ou mais blocos de células contíguos. O exemplo a seguir cria um objeto definido como a união dos intervalos A1:B2 e C3:D4, e depois seleciona o intervalo definido.

Dim r1 As Range, r2 As Range, myMultiAreaRange As Range 
Worksheets("sheet1").Activate 
Set r1 = Range("A1:B2") 
Set r2 = Range("C3:D4") 
Set myMultiAreaRange = Union(r1, r2) 
myMultiAreaRange.Select

Se você trabalha com seleções que contêm mais de uma área, a propriedade Areas será útil. Ela divide uma seleção de várias áreas em objetos Range individuais, e depois retorna os objetos como um conjunto. Use a propriedade Contagem no conjunto retornado para verificar uma seleção que contém mais de uma área, como mostrado no exemplo a seguir.

Sub NoMultiAreaSelection() 
    NumberOfSelectedAreas = Selection.Areas.Count 
    If NumberOfSelectedAreas > 1 Then 
        MsgBox "You cannot carry out this command " & _ 
            "on multi-area selections" 
    End If 
End Sub

Este exemplo usa o método AdvancedFilter do objeto Range para criar uma lista de valores exclusivos e o número de vezes que eles ocorrem no intervalo da coluna A.

Sub Create_Unique_List_Count()
    'Excel workbook, the source and target worksheets, and the source and target ranges.
    Dim wbBook As Workbook
    Dim wsSource As Worksheet
    Dim wsTarget As Worksheet
    Dim rnSource As Range
    Dim rnTarget As Range
    Dim rnUnique As Range
    'Variant to hold the unique data
    Dim vaUnique As Variant
    'Number of unique values in the data
    Dim lnCount As Long
    
    'Initialize the Excel objects
    Set wbBook = ThisWorkbook
    With wbBook
        Set wsSource = .Worksheets("Sheet1")
        Set wsTarget = .Worksheets("Sheet2")
    End With
    
    'On the source worksheet, set the range to the data stored in column A
    With wsSource
        Set rnSource = .Range(.Range("A1"), .Range("A100").End(xlDown))
    End With
    
    'On the target worksheet, set the range as column A.
    Set rnTarget = wsTarget.Range("A1")
    
    'Use AdvancedFilter to copy the data from the source to the target,
    'while filtering for duplicate values.
    rnSource.AdvancedFilter Action:=xlFilterCopy, _
                            CopyToRange:=rnTarget, _
                            Unique:=True
                            
    'On the target worksheet, set the unique range on Column A, excluding the first cell
    '(which will contain the "List" header for the column).
    With wsTarget
        Set rnUnique = .Range(.Range("A2"), .Range("A100").End(xlUp))
    End With
    
    'Assign all the values of the Unique range into the Unique variant.
    vaUnique = rnUnique.Value
    
    'Count the number of occurrences of every unique value in the source data,
    'and list it next to its relevant value.
    For lnCount = 1 To UBound(vaUnique)
        rnUnique(lnCount, 1).Offset(0, 1).Value = _
            Application.Evaluate("COUNTIF(" & _
            rnSource.Address(External:=True) & _
            ",""" & rnUnique(lnCount, 1).Text & """)")
    Next lnCount
    
    'Label the column of occurrences with "Occurrences"
    With rnTarget.Offset(0, 1)
        .Value = "Occurrences"
        .Font.Bold = True
    End With

End Sub

Métodos

Propriedades

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.