Você está offline; aguardando reconexão

Como selecionar células/intervalos usando procedimentos do Visual Basic no Excel

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

Mais Informações
A Microsoft fornece exemplos de programação apenas por questões ilustrativas, sem garantias expressas ou implícitas. Isso inclui (mas não está limitado a) garantias implícitas de comercialização ou adequação a um determinado propósito. Este artigo pressupõe que você conhece a linguagem de programação demonstrada e também as ferramentas usadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudá-lo, fornecendo a explicação da funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para fornecer funcionalidades adicionais ou construir procedimentos específicos para atender às suas necessidades específicas. Os exemplos deste artigo usam os métodos do Visual Basic listados na tabela a seguir.
   Método             Argumentos   ------------------------------------------   Activate           none   Cells              rowIndex, columnIndex   Application.Goto   reference, scroll   Offset             rowOffset, columnOffset   Range              cell1                      cell1, cell2   Resize             rowSize, columnSize   Select             none   Sheets             index (ou sheetName)   Workbooks          index (ou bookName)   End                direction   CurrentRegion      none				
Os exemplos deste artigo usam as propriedades contidas na tabela a seguir.
   Propriedade         Uso   ---------------------------------------------------------------------   ActiveSheet      para especificar a planilha ativa   ActiveWorkbook   para especificar a pasta de trabalho ativa   Columns.Count    para contar o número de colunas no item especificado   Rows.Count       para contar o número de linhas no item especificado   Selection        para fazer referência ao intervalo atualmente selecionado				

1: Como selecionar uma célula na planilha ativa

Para selecionar a célula D5 na planilha ativa, é possível usar qualquer um dos exemplos a seguir:
ActiveSheet.Cells(5, 4).Select				
-ou-
ActiveSheet.Range("D5").Select				

2: Como selecionar uma célula em outra planilha na mesma pasta de trabalho

Para selecionar a célula E6 em outra planilha na mesma pasta de trabalho, é possível usar um dos seguintes exemplos:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)				
   -ou-				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))				
Ou então, é possível ativar a planilha e, em seguida, usar o método 1 acima para selecionar a célula:
Sheets("Sheet2").ActivateActiveSheet.Cells(6, 5).Select				

3: Como selecionar uma célula em uma planilha em uma pasta de trabalho diferente

Para selecionar a célula F7 em uma planilha em uma pasta de trabalho diferente, é possível usar um dos seguintes exemplos:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)				
-ou-
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")				
Ou então, é possível ativar a planilha e, em seguida, usar o método 1 acima para selecionar a célula:
Workbooks("BOOK2.XLS").Sheets("Sheet1").ActivateActiveSheet.Cells(7, 6).Select				

4: Como selecionar um intervalo de células na planilha ativa

Para selecionar o intervalo C2:D10 na planilha ativa, é possível usar qualquer um dos seguintes exemplos:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select				
ActiveSheet.Range("C2:D10").Select				
ActiveSheet.Range("C2", "D10").Select				

5: Como selecionar um intervalo de células em outra planilha na mesma pasta de trabalho

Para selecionar a célula D3:E11 em outra planilha na mesma pasta de trabalho, é possível usar um dos seguintes exemplos:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")				
Ou então, é possível ativar a planilha e, em seguida, usar o método 4 acima para selecionar o intervalo:
Sheets("Sheet3").ActivateActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select				

6: Como selecionar um intervalo de células em uma planilha em uma pasta de trabalho diferente

Para selecionar a célula E4:F12 em uma planilha em uma pasta de trabalho diferente, é possível usar um dos seguintes exemplos:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")				
Application.Goto _      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")				
Ou então, é possível ativar a planilha e, em seguida, usar o método 4 acima para selecionar o intervalo:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select				

7: Como selecionar um intervalo nomeado na planilha ativa

Para selecionar o intervalo nomeado "Test" na planilha ativa, é possível usar qualquer um dos seguintes exemplos:
Range("Test").Select				
Application.Goto "Test"				

8: Como selecionar um intervalo nomeado em outra planilha na mesma pasta de trabalho

Para selecionar o intervalo chamado "Test" em outra planilha na mesma pasta de trabalho, é possível usar o seguinte exemplo:
Application.Goto Sheets("Sheet1").Range("Test")				
Ou então, é possível ativar a planilha e, em seguida, usar o método 7 acima para selecionar o intervalo nomeado:
Sheets("Sheet1").ActivateRange("Test").Select				

9: Como selecionar um intervalo nomeado em uma planilha em uma pasta de trabalho diferente

Para selecionar o intervalo chamado "Test" em uma planilha em uma pasta de trabalho diferente, é possível usar o seguinte exemplo:
Application.Goto _   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")				
Ou então, é possível ativar a planilha e, em seguida, usar o método 7 acima para selecionar o intervalo nomeado:
Workbooks("BOOK2.XLS").Sheets("Sheet2").ActivateRange("Test").Select				

10: Como selecionar uma célula relativa à célula ativa

Para selecionar uma célula que está cinco linhas abaixo e quatro colunas à esquerda da célula ativa, é possível usar o seguinte exemplo:
ActiveCell.Offset(5, -4).Select				
Para selecionar uma célula que está duas linhas acima e três colunas à direita da célula ativa, é possível usar o seguinte exemplo:
ActiveCell.Offset(-2, 3).Select				
Observação Ocorrerá um erro se você tentar selecionar um célula que esteja "fora da planilha". O primeiro exemplo mostrado acima retornará um erro se a célula ativa estiver nas colunas de A a D, pois mover quatro colunas para a esquerda leva a célula ativa para um endereço de célula inválido.

11: Como selecionar uma célula relativa à outra célula (que não seja a ativa)

Para selecionar uma célula que está cinco linhas abaixo e quatro colunas à direita da célula C7, é possível usar os seguintes exemplos:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select				
ActiveSheet.Range("C7").Offset(5, 4).Select				

12: Como selecionar um intervalo de deslocamento de células a partir de um intervalo específico

Para selecionar um intervalo de células do mesmo tamanho que o intervalo chamado "Test", mas deslocado quatro linhas abaixo e três colunas à direita, é possível usar o seguinte exemplo:
ActiveSheet.Range("Test").Offset(4, 3).Select				
Se o intervalo nomeado estiver em outra planilha (não a ativa), ative essa planilha primeiro e, em seguida, selecione o intervalo usando o seguinte exemplo:
Sheets("Sheet3").ActivateActiveSheet.Range("Test").Offset(4, 3).Select				

13: Como selecionar um intervalo específico e redimensionar a seleção

Para selecionar o intervalo nomeado "Database" e ampliar a seleção em cinco linhas, é possível usar o seguinte exemplo:
Range("Database").SelectSelection.Resize(Selection.Rows.Count + 5, _   Selection.Columns.Count).Select				

14: Como selecionar um intervalo especificado, deslocar e redimensioná-lo

Para selecionar um intervalo quatro linhas abaixo e três colunas à direita do intervalo chamado "Database" e incluir duas linhas e uma coluna a mais do que o intervalo nomeado, é possível usar o seguinte exemplo:
Range("Database").SelectSelection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _   Selection.Columns.Count + 1).Select				

15: Como selecionar a união de dois ou mais intervalos específicos

Para selecionar a união (isto é, a área combinada) dos dois intervalos chamados "Test" e "Sample," é possível usar o seguinte exemplo:
Application.Union(Range("Test"), Range("Sample")).Select				
Observe que ambos os intervalos deverão estar na mesma planilha para que esse exemplo funcione. Observe também que o método Union não funciona entre planilhas. Por exemplo, esta linha funciona bem
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))				
mas esta linha
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))				
retorna a mensagem de erro:
O método Union da classe de aplicativo falhou

16: Como selecionar a interseção de dois ou mais intervalos específicos

Para selecionar a interseção dos dois intervalos chamados "Test" e "Sample", é possível usar o seguinte exemplo:
Application.Intersect(Range("Test"), Range("Sample")).Select				
Observe que ambos os intervalos deverão estar na mesma planilha para que esse exemplo funcione.



Os exemplos 17-21 deste artigo referem-se ao seguinte conjunto de dados de exemplo. Cada exemplo informa o intervalo de células nos dados de exemplo que serão selecionados.
   A1: Nome    B1: Vendas    C1: Quantidade   A2: a       B2: $10      C2: 5   A3: b       B3:          C3: 10   A4: c       B4: $10      C4: 5   A5:         B5:          C5:   A6: Total   B6: $20      C6: 20				

17: Como selecionar a última célula de uma coluna de dados contíguos

Para selecionar a última célula em uma coluna contígua, use o seguinte exemplo:
ActiveSheet.Range("a1").End(xlDown).Select				
Quando esse código for usado com a tabela de exemplo, a célula A4 será selecionada.

18: Como selecionar a célula em branco na parte inferior da coluna de dados contíguos

Para selecionar a célula abaixo de um intervalo de célula contíguas, use o seguinte exemplo:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select				
Quando esse código for usado com a tabela de exemplo, a célula A5 será selecionada.

19: Como selecionar um intervalo completo de célula contíguas em uma coluna

Para selecionar um intervalo de células contíguas em uma coluna, use um dos seguintes exemplos:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select				
   -ou-				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _      End(xlDown).Address).Select				
Quando esse código for usado com a tabela de exemplo, as células de A1 a A4 serão selecionadas.

20: Como selecionar um intervalo completo de célula não-contíguas em uma coluna

Para selecionar um intervalo de células não-contíguas, use um dos seguintes exemplos:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select				
   -ou-				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _   End(xlUp).Address).Select				
Quando esse código for usado com a tabela de exemplos, as células de A1 a A6 serão selecionadas.

21: Como selecionar um intervalo de células retangular

Para selecionar um intervalo de células retangular ao redor da célula, use o método CurrentRegion. O intervalo selecionado pelo método CurrentRegion é uma área limitada por qualquer combinação de linhas e colunas em branco. O seguinte exemplo é sobre como usar o método CurrentRegion:
ActiveSheet.Range("a1").CurrentRegion.Select				
Esse código selecionará as células de A1 a C4. Outros exemplos para selecionar o mesmo intervalo de células estão listados abaixo:
ActiveSheet.Range("a1", _   ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select				
   -ou-				
ActiveSheet.Range("a1:" & _   ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select				
Em algumas situações, você poderá selecionar as células de A1 a C6. Neste exemplo, o método CurrentRegion não funcionará devido à linha em branco na linha 5. Os seguintes exemplos selecionarão todas as células:
lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select				
    -ou-				
lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1:" & _   ActiveSheet.Cells(lastRow, lastCol).Address).Select				

22. Como selecionar várias colunas não-contíguas de comprimento variado

Para selecionar várias colunas não-contíguas de comprimentos variado, use a seguinte tabela de exemplo de macro:
   A1: 1  B1: 1  C1: 1  D1: 1   A2: 2  B2: 2  C2: 2  D2: 2   A3: 3  B3: 3  C3: 3  D3: 3   A4:    B4: 4  C4: 4  D4: 4   A5:    B5: 5  C5: 5  D5:   A6:    B6:    C6: 6  D6:				
StartRange = "A1"EndRange = "C1"Set a = Range(StartRange, Range(StartRange).End(xlDown))Set b = Range(EndRange, Range(EndRange).End(xlDown))Union(a,b).Select				
Quando esse código for usado com a tabela de exemplo, as células A1:A3 e C1:C6 serão selecionadas.

OBSERVAÇÕES SOBRE OS EXEMPLOS

  • A propriedade ActiveSheet geralmente pode ser omitida, pois estará implícita se uma planilha específica não for nomeada. Por exemplo, ao invés de
    ActiveSheet.Range("D5").Select						
    é possível usar:
    Range("Test").Select						
  • A propriedade ActiveWorkbook geralmente também pode ser omitida. A menos que uma pasta de trabalho específica seja nomeada, a pasta de trabalho ativa estará implícita.
  • Quando você usar o método Application.Goto, se desejar usar dois métodos Cells no método Range quando o intervalo especificado estiver em outra planilha (que não seja a ativa), você deverá incluir o objeto Sheets todas as vezes. Por exemplo:
    Application.Goto Sheets("Sheet1").Range( _      Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _      Sheets("Sheet1").Cells(4, 5)))					
  • Para qualquer item entre aspas (por exemplo, o intervalo nomeado "Test"), também é possível usar uma variável cujo valor seja uma cadeia de texto. Por exemplo, ao invés de
    ActiveWorkbook.Sheets("Sheet1").Activate						
    é possível usar
    ActiveWorkbook.Sheets(myVar).Activate						
    onde o valor de myVar é "Sheet1".
Referências

Para obter mais informações sobre como usar o código de exemplo neste artigo, clique no seguinte número para ler o artigo da Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
290140 Como executar o código de exemplo para os programas do Office XP pelos artigos da Base de Dados de Conhecimento Microsoft
OfficeKBHowTo howto contiguous how to discontiguous non-contiguous nonadjacent non-adjacent  XL2003 XL2007 XL2010
Propriedades

ID do Artigo: 291308 - Última Revisão: 12/03/2013 15:32:00 - Revisão: 4.0

  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
  • kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308
Comentários