NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Quer Receber Novidades e E-books Gratuitos de Excel? * Junte-se a mais de 103.000 pessoas!

Curso Grátis de Excel Avançado - Módulo 6 - Lição: Worksheet e Range - Propriedades e Métodos - Parte 1

120 Lições | Gratuito Online | Autor: Júlio Battisti


Nessa lição e nas próximas duas, veremos alguns exemplos de usos práticos do objeto Worksheet e de Range. Também serão apresentados detalhes sobre alguns dos principais métodos e propriedades desses objetos.

Como fazer referência a células e intervalos:

Uma tarefa comum ao usar o VBA é especificar uma célula ou intervalo de células e, em seguida, fazer algo com elas, como inserir uma fórmula ou alterar o formato. Geralmente, você pode fazer isso em uma instrução que identifique o intervalo e também altere uma propriedade ou aplique um método.

Um objeto Range no VBA pode ser uma única célula ou um intervalo de células. Os tópicos seguintes mostram as maneiras mais comuns de identificar e trabalhar com objetos Range.

Referir-se a células e intervalos usando a notação A1:

Você pode referir-se a uma célula ou intervalo de células no estilo de referência A1 usando o método Range. O exemplo seguinte altera o formato das células A1:D5 para negrito.

Workbooks("Book1").Sheets("Sheet1").Range("A1:D5").Font.Bold = True

A tabela seguinte ilustra algumas referências em estilo A1 usando o método Range.

Referência Significado
Range("A1") Célula A1
Range("A1:B5") Células de A1 até B5
Range("C5:D9,G9:H16") Uma seleção de várias áreas
Range("A:A") Coluna A
Range("1:1") Linha 1
Range("A:C") Colunas de A até C
Range("1:5") Linhas 1 até 5
Range("1:1,3:3,8:8") Linhas 1, 3 e 8
Range("A:A,C:C,F:F") Colunas A, C e F

Referir-se a células usando números de índice:

Você pode usar a propriedade Cells para referir-se a uma única célula usando números de índice de linha e coluna. Essa propriedade retorna um objeto Range representando uma única célula. No exemplo seguinte, Cells(6,1) retorna a célula A6 da planilha Sheet1. Em seguida, a propriedade Value é definida como 10.

Worksheets("Sheet1").Cells(6, 1).Value = 10

A propriedade Cells funciona bem para loop através de um intervalo de células porque você pode substituir os números de índice por variáveis, conforme mostrado no exemplo seguinte.

Dim counter As Integer
For counter = 1 To 20
   Worksheets("Sheet1").Cells(counter, 3).Value = counter
Next counter

Observação: Se você desejar alterar as propriedades ou aplicar um método a todo um intervalo de células de uma só vez, use a propriedade Range. Para obter mais informações, consulte Referir-se a células usando notação A1.

Referir-se a linhas e colunas:

Use a propriedade Rows ou a propriedade Columns para trabalhar com linhas ou colunas inteiras. Essas propriedades retornam um objeto Range representando um intervalo de células. No exemplo seguinte, Rows(1) retorna a linha um na planilha Sheet1. Em seguida, a propriedade Bold do objeto Font do intervalo é definida como True.

Worksheets("Sheet1").Rows(1).Font.Bold = True

A tabela seguinte ilustra algumas referências de linha e coluna usando as propriedades Rows e Columns.

Referência Significado
Rows(1) Linha um
Rows Todas as linhas da planilha
Columns(1) Coluna um
Columns("A") Coluna um
Columns Todas as colunas da planilha

Para trabalhar com várias linhas ou colunas ao mesmo tempo, crie uma variável de objeto e use o método Union, combinando várias chamadas à propriedade Rows ou Columns. O exemplo seguinte altera para negrito o formato das linhas um, três e cinco na planilha um da pasta de trabalho ativa.

Worksheets("Sheet1").Activate
Dim myUnion As Range
Set myUnion = Union(Rows(1), Rows(3), Rows(5))
myUnion.Font.Bold = True

Referir-se a intervalos nomeados:

Os intervalos são mais fáceis de identificar por nome do que por notação A1. Para nomear um intervalo selecionado, clique na caixa de nome na extremidade esquerda da barra de fórmulas, digite um nome e, em seguida, pressione ENTER.

Referir-se a um intervalo nomeado:

O exemplo seguinte refere-se ao intervalo chamado "MyRange" na pasta de trabalho chamada "MyBook.xls".

Range("MyBook.xls!MyRange").Font.Italic = True

O exemplo seguinte se refere ao intervalo específico de planilha chamado "Sheet1!Sales" na pasta de trabalho chamada "Report.xls".

Range("[Report.xls]Sheet1!Sales").BorderAround weight:=xlthin

Para selecionar um intervalo nomeado, use o método GoTo, o qual ativa a pasta de trabalho e a planilha e, em seguida, seleciona o intervalo.

Application.Goto Reference:="MyBook.xls!MyRange"
Selection.ClearContents

O exemplo seguinte mostra como o mesmo procedimento seria escrito para a pasta de trabalho ativa.

Application.Goto Reference:="MyRange"
Selection.ClearContents

Realizar loop em células de um intervalo nomeado

O exemplo seguinte faz um loop através de cada célula de um intervalo nomeado usando um loop For Each...Next. Se o valor de qualquer célula do intervalo exceder o valor de limit, a cor da célula será alterada para amarelo.

Const limit As Integer = 25
For Each c In Range("MyRange")
   If c.Value > limit Then
      c.Interior.ColorIndex = 27
   End If
Next c

Na próxima lição continuaremos a ver exemplos de referência a células e faixa de células.

[LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI