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.
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.
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 |
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.
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
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.
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
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.
VOCÊ CONHECE A UNIVERSIDADE DO EXCEL? |
UNIVERSIDADE PRÁTICA DO EXCEL - Domine o Excel, do Básico até a Criação de Planilhas Profissionais com Excel e VBA! Aplica-se ao Excel 2019, 2016, 2013 e 2010! |
22 Cursos - 925 Vídeo-Aulas - 120:42 horas - Só R$ 97,00 |
Para Todos os Detalhes, Acesse: |