OS MELHORES VÍDEOS

 

Pesquisar

sexta-feira, 20 de dezembro de 2013

Selecionar células/intervalos usando procedimentos do Visual Basic no Excel.

Neste artigo vou apresentar 22 maneira de selecionar células/intervalos usando a linguagem VBA.


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").Activate
ActiveSheet.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").Activate
ActiveSheet.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").Activate
ActiveSheet.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").Activate
Range("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").Activate
Range("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").Activate
ActiveSheet.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").Select
Selection.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").Select
Selection.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).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
    
    -ou-
    

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.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".



Um comentário:

  1. Fala Brother .. Estou Com Duvidas .. Para Inserir Valores Em Rows Através de Variaveis .. Exemplo .. Estou Colocando Assim ..

    Dim i as Integer
    i = 5
    'Quero selecionar um Intervalo de linhas inteiro
    ActiveCell.Offset(5, 0).Rows("1:i").EntireRow.Select

    E Esta Dando Erro .. Voce Pode Me Ajudar ? Obrigado !

    ResponderExcluir