Como seleccionar células/intervalos utilizando procedimento 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. Aprenda o que isto significa para si e como pode ficar protegido.

Mais Informação
A Microsoft fornece exemplos de programação apenas a título informativo, sem garantia expressa ou implícita, incluindo, sem limitação, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador conhece a linguagem de programação apresentada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador. Os exemplos neste artigo utilizam os métodos do Visual Basic listados na seguinte tabela.
   Método             Argumentos   ------------------------------------------   Activate           nenhum   Cells              rowIndex, columnIndex   Application.Goto   reference, scroll   Offset             rowOffset, columnOffset   Range              cell1                      cell1, cell2   Resize             rowSize, columnSize   Select             nenhum   Sheets             index (ou sheetName)   Workbooks          index (ou bookName)   End                direction   CurrentRegion      nenhum				Os exemplos deste artigo utilizam as propriedades na seguinte tabela. <Formatting Type="FixedText"><![CDATA[   Propriedade         Utilização   ---------------------------------------------------------------------   ActiveSheet      para especificar a folha activa   ActiveWorkbook   para especificar o livro activo   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 referenciar o intervalo actualmente seleccionado				

1: Como seleccionar uma célula na Folha de cálculos activa

Para seleccionar a célula D5 na folha de cálculos activa, pode utilizar qualquer um dos exemplos seguintes:
ActiveSheet.Cells(5, 4).Select				
- ou -
ActiveSheet.Range("D5").Select				

2: Como seleccionar uma célula noutra folha de cálculo no mesmo livro

Para seleccionar a célula E6 noutra folha de cálculos no mesmo livro, pode utilizar qualquer um dos exemplos seguintes:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)				
   - ou -				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))				
Em alternativa, pode activar a folha de cálculo e utilizar o método 1 acima para seleccionar a célula:
Sheets("Sheet2").ActivateActiveSheet.Cells(6, 5).Select				

3: Como seleccionar uma célula numa folha de cálculo num livro diferente

Para seleccionar a célula F7 numa folha de cálculos num livro diferente, pode utilizar qualquer um dos exemplos seguintes:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)				
- ou -
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")				
Em alternativa, pode activar a folha de cálculo e utilizar o método 1 acima para seleccionar a célula:
Workbooks("BOOK2.XLS").Sheets("Sheet1").ActivateActiveSheet.Cells(7, 6).Select				

4: Como seleccionar um intervalo de células na folha de cálculos activa

Para seleccionar o intervalo C2:D10 na folha de cálculos activa, pode utilizar qualquer um dos exemplos seguintes:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select				
ActiveSheet.Range("C2:D10").Select				
ActiveSheet.Range("C2", "D10").Select				

5: Como seleccionar um intervalo de células noutra folha de cálculo no mesmo livro

Para seleccionar o intervalo D3:E11 noutra folha de cálculos no mesmo livro, pode utilizar qualquer um dos exemplos seguintes:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")				
Em alternativa, pode activar a folha de cálculo e utilizar o método 4 acima para seleccionar o intervalo:
Sheets("Sheet3").ActivateActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select				

6: Como seleccionar um intervalo de células numa folha de cálculo num livro diferente

Para seleccionar o intervalo E4:F12 numa folha de cálculos num livro diferente, pode utilizar qualquer um dos exemplos seguintes:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")				
Application.Goto _      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")				
Em alternativa, pode activar a folha de cálculo e utilizar o método 4 acima para seleccionar o intervalo:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select				

7: Como seleccionar um intervalo com nome na folha de cálculos activa

Para seleccionar o intervalo com nome "Test" na folha de cálculos activa, pode utilizar qualquer um dos exemplos seguintes:
Range("Test").Select				
Application.Goto "Test"				

8: Como seleccionar um intervalo com nome noutra folha de cálculo no mesmo livro

Para seleccionar o intervalo com nome "Test" noutra folha de cálculos no mesmo livro, pode utilizar qualquer um dos exemplos seguintes:
Application.Goto Sheets("Sheet1").Range("Test")				
Em alternativa, pode activar a folha de cálculo e utilizar o método 7 acima para seleccionar o intervalo com nome:
Sheets("Sheet1").ActivateRange("Test").Select				

9: Como seleccionar um intervalo com nome numa folha de cálculo num livro diferente

Para seleccionar o intervalo com nome "Test" numa folha de cálculos num livro diferente, pode utilizar qualquer um dos exemplos seguintes:
Application.Goto _   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")				
Em alternativa, pode activar a folha de cálculo e utilizar o método 7 acima para seleccionar o intervalo com nome:
Workbooks("BOOK2.XLS").Sheets("Sheet2").ActivateRange("Test").Select				

10: Como seleccionar uma célula relativa à célula activa

Para seleccionar uma célula cinco linhas abaixo e quatro colunas à esquerda da célula activa, pode utilizar o exemplo seguinte:
ActiveCell.Offset(5, -4).Select				
Para seleccionar uma célula que esteja duas linhas acima e três colunas à direita da célula activa, poderá utilizar o seguinte exemplo:
ActiveCell.Offset(-2, 3).Select				
Nota Se tentar seleccionar uma célula que esteja "fora da folha de cálculo", irá obter um erro. O primeiro exemplo mostrado acima irá devolver um erro se a célula activa estiver nas colunas A a D, uma vez que a deslocação de quatro colunas para a esquerda colocaria a célula activa num endereço de célula inválido.

11: Como seleccionar uma célula relativa a outra célula activa (não a activa)

Para seleccionar uma célula cinco linhas abaixo e quatro colunas à direita da célula C7, pode utilizar qualquer um dos exemplos seguintes:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select				
ActiveSheet.Range("C7").Offset(5, 4).Select				

12: Como seleccionar um intervalo de células deslocado a partir de um intervalo especificado

Para seleccionar um intervalo de células que tenha o mesmo tamanho que o intervalo com nome "Test" mas que esteja deslocado quatro linhas para baixo e três colunas para a direita, poderá utilizar o seguinte exemplo:
ActiveSheet.Range("Test").Offset(4, 3).Select				
Se o intervalo com nome estiver noutra folha de cálculo (que não a activa), active essa folha de cálculo primeiro e seleccione o intervalo utilizando o seguinte exemplo:
Sheets("Sheet3").ActivateActiveSheet.Range("Test").Offset(4, 3).Select				

13: Como seleccionar um intervalo específico e redimensionar a selecção

Para seleccionar o intervalo com nome "Database" e de seguida alargar a selecção em cinco linhas, pode utilizar o exemplo seguinte:
Range("Database").SelectSelection.Resize(Selection.Rows.Count + 5, _   Selection.Columns.Count).Select				

14: Como seleccionar um intervalo específico, deslocá-lo e de seguida redimensioná-lo

Para seleccionar um intervalo quatro linhas abaixo e três colunas à direita do intervalo com nome "Database" e incluir duas linhas e uma coluna a mais que o intervalo com nome, poderá utilizar o seguinte exemplo:
Range("Database").SelectSelection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _   Selection.Columns.Count + 1).Select				

15: Como seleccionar a união de dois ou mais intervalos especificados

Para seleccionar a união (ou seja, a área combinada) dos dois intervalos com nome "Test" e "Sample", poderá utilizar o seguinte exemplo:
Application.Union(Range("Test"), Range("Sample")).Select				
Tenha em atenção que ambos os intervalos têm de estar na mesma folha de cálculo para que este exemplo funcione. Tenha também em atenção que o método Union não funciona entre folhas. Por exemplo, a linha seguinte funciona
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"))				
devolve a mensagem de erro:
Union method of application class failed (Falha no método Union da classe de aplicação)

16: Como seleccionar a intersecção de dois ou mais intervalos especificados

Para seleccionar a intersecção dos dois intervalos com nome "Test" e "Sample", poderá utilizar o seguinte exemplo:
Application.Intersect(Range("Test"), Range("Sample")).Select				
Tenha em atenção que ambos os intervalos têm de estar na mesma folha de cálculo para que este exemplo funcione.



Os exemplos 17 a 21 neste artigo referem-se ao seguinte conjunto de exemplos de dados. Cada exemplo indica o intervalo de células nos exemplos de dados que seriam seleccionados.
   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 seleccionar a última célula de uma coluna de dados contíguos

Para seleccionar a última célula numa coluna contígua, utilize o exemplo seguinte:
ActiveSheet.Range("a1").End(xlDown).Select				
Quando este código for utilizado com a tabela de exemplo, a célula A4 será seleccionada.

18: Como seleccionar a célula em branco no fundo de uma coluna de dados contíguos

Para seleccionar a célula abaixo de um intervalo de células contíguas, utilize o exemplo seguinte:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select				
Quando este código for utilizado com a tabela de exemplo, a célula A5 será seleccionada.

19: Como seleccionar um intervalo completo de células contíguas numa coluna

Para seleccionar um intervalo de células contíguas numa coluna, utilize um dos exemplos seguintes:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select				
   - ou -				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _      End(xlDown).Address).Select				
Quando este código for utilizado com a tabela de exemplo, as células A1 a A4 serão seleccionadas.

20: Como seleccionar um intervalo completo de células não contíguas numa coluna

Para seleccionar um intervalo de células não contíguas, utilize um dos exemplos seguintes:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select				
   - ou -				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _   End(xlUp).Address).Select				
Quando este código for utilizado com a tabela de exemplo, seleccionará as células A1 a A6.

21: Como seleccionar um intervalo de células rectangular

De modo a seleccionar um intervalo rectangular de células à volta de uma célula, utilize o método CurrentRegion. O intervalo seleccionado pelo método CurrentRegion é uma área delimitada por qualquer combinação de linhas em branco e colunas em branco. Segue-se um exemplo de como utilizar o método CurrentRegion:
ActiveSheet.Range("a1").CurrentRegion.Select				
Este código seleccionará as células A1 a C4. Encontra listados abaixo outros exemplos de como seleccionar o mesmo intervalo de células:
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 alguns casos, poderá pretender seleccionar as células A1 a C6. Neste exemplo, o método CurrentRegion não irá funcionar devido à linha em branco na Linha 5. Os seguintes exemplos irão seleccionar 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 seleccionar múltiplas colunas não contíguas de comprimento variável

Para seleccionar múltiplas colunas não contíguas de comprimento variável, utilize a seguinte tabela e macro de exemplo:
   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 este código for utilizado com a tabela de exemplo, as células A1:A3 e C1:C6 serão seleccionadas.

NOTAS SOBRE OS EXEMPLOS

  • Normalmente, a propriedade ActiveSheet pode ser omitida, uma vez que se considera implícita sempre que uma folha específica não tiver nome. Por exemplo, em vez de
    ActiveSheet.Range("D5").Select						
    poderá utilizar:
    Range("D5").Select						
  • Normalmente, a propriedade ActiveWorkbook também pode ser omitida. A não ser que um livro específico tenha nome, o livro activo será considerado implícito.
  • Quando utilizar o método Application.Goto, se pretender utilizar dois métodos Cells dentro do método Range quando o intervalo especificado estiver noutra folha de cálculo (que não a activa), terá de incluir sempre o objecto Sheets. Por exemplo:
    Application.Goto Sheets("Sheet1").Range( _      Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _      Sheets("Sheet1").Cells(4, 5)))					
  • Para qualquer item que esteja entre aspas (por exemplo, o intervalo com nome "Test"), também poderá utilizar uma variável cujo valor seja uma cadeia de texto. Por exemplo, em vez de
    ActiveWorkbook.Sheets("Sheet1").Activate						
    poderá utilizar
    ActiveWorkbook.Sheets(myVar).Activate						
    Em que o valor de myVar é "Sheet1".
Referências

Para mais informações sobre como utilizar o código de exemplo contido neste artigo, clique no número de artigo que se segue para visualizar o artigo na Base de Dados de Conhecimento Microsoft:
290140 Como executar o exemplo de código para programas do Office XP a partir de artigos da Base de Dados de Conhecimento
OfficeKBHowTo howto contiguous how to discontiguous non-contiguous nonadjacent non-adjacent  XL2003 XL2007 XL2010
Propriedades

ID do Artigo: 291308 - Última Revisão: 03/09/2014 01:18:00 - Revisão: 3.0

  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
  • kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308
Esta informação foi útil?