120 Lições | Gratuito Online | Autor: Júlio Battisti
Agora vamos descer um pouco mais na hierarquia de objetos do Excel. Já passamos pelo objeto Application (que faz referência ao próprio Excel); em seguida pelo objeto Workbook (o qual faz referência a uma pasta de trabalho, isto é, a um arquivo .xls); e, na última lição, estudamos o objeto Worksheet, o qual faz referência a uma planilha, dentro de uma pasta de trabalho.
O próximo passo é aprendermos a utilizar os objetos que fazem referência a uma célula ou faixa de células, dentro de uma planilha.O objeto Workbook representa uma pasta de trabalho (arquivo .xls). Dentro de uma pasta de trabalho, podemos ter uma ou mais planilhas, as quais são acessadas usando-se o objeto Worksheet e a coleção Worksheets. Dentro de uma planilha, usamos o objeto Range para acessar uma célula ou faixa de células da planilha. Esse é o assunto dessa lição, ou seja: o objeto Range.
O objeto Range representa uma célula, uma linha, uma coluna, uma seleção de células contendo um ou mais blocos contíguos de células ou um intervalo 3D.
Estudaremos as seguintes propriedades do objeto Range:
Use Range(argumento), onde argumento nomeia o intervalo, para retornar um objeto Range representando uma única célula ou um intervalo de células. O exemplo seguinte atribui o valor da célula A1 para a célula A5.
Worksheets("Plan1").Range("A5").Value = Worksheets("Plan1").Range("A1").Value
O exemplo seguinte preenche o intervalo A1:H8 com números randômicos (aleatórios), definindo a fórmula para cada célula do intervalo. Quando usada sem um qualificador de objeto (um objeto à esquerda do ponto), a propriedade Range retorna um intervalo da planilha ativa. Se a planilha ativa não for uma planilha de trabalho, o método falhará. Use o método Activate para ativar uma planilha antes de usar a propriedade Range sem um qualificador de objeto explícito.
Worksheets("Plan1").Activate
Range("A1:H8").Formula = "=rand()"
O exemplo seguinte limpa o conteúdo do intervalo chamado "Criteria".
Worksheets(1).Range("criteria").ClearContents
Se você usar um argumento dex texto para o endereço do intervalo, você terá que especificar o endereço em notação de estilo A1 (você não poderá usar a notação de estilo L1C1, onde L1 significa Linha 1 e C1 significa Coluna 1).
Use Cells(linha, coluna) onde linha é o índice da linha e coluna é o índice da coluna, para retornar uma única célula. O exemplo seguinte define o valor da célula A1 como 24.
Worksheets(1).Cells(1, 1).Value = 24
O exemplo seguinte define a fórmula para a célula A2.
ActiveSheet.Cells(2,1).Formula = "=sum(B1:B5)"
Embora você também possa usar Range("A1") para retornar a célula A1, pode haver ocasiões em que a propriedade Cells seja mais conveniente porque você pode usar uma variável para a linha ou coluna. O exemplo seguinte cria cabeçalhos de coluna e linha na planilha Plan1. Observe que após a planilha ser ativada, a propriedade Cells pode ser usada sem uma declaração explícita de planilha (ela retorna uma célula da planilha ativa).
Worksheets("Plan1").Activate
For theYear = 1 To 5
Cells(1, theYear + 1).Value = 1990 + theYear
Next theYear
For theQuarter = 1 To 4
Cells(theQuarter + 1, 1).Value = "Q" & theQuarter
Next theQuarter
Apesar de você poder usar funções de cadeia de caracteres do VBA para alterar as referências de estilo A1, é muito mais fácil (e é uma prática de programação muito melhor) usar a notação Cells(1, 1).
Use expressão.Cells(linha, coluna), onde expressão é uma expressão que retorne um objeto Range, e linha e coluna são relativas ao canto superior esquerdo do intervalo, para retornar parte de um intervalo. O exemplo seguinte define a fórmula para a célula C5.
Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=rand()"
Use Offset(linha, coluna), onde linha e coluna são os deslocamentos de linha e coluna, para retornar um intervalo em um deslocamento especificado de um outro intervalo. O exemplo seguinte seleciona a célula três linhas abaixo e uma coluna à esquerda da célula do canto superior esquerdo da seleção atual. Você não pode selecionar uma célula que não esteja na planilha ativa, portanto, você precisa ativar primeiro a planilha.
Worksheets("Plan1").Activate
Selection.Offset(3, 1).Range("A1").Select
Use Union(intervalo1, intervalo2, ...) para retornar intervalos de várias áreas - isto é, intervalos compostos de dois ou mais blocos contíguos de células. O exemplo seguinte cria um objeto definido como a união de intervalos A1:B2 e C3:D4 e, em seguida, seleciona o intervalo definido.
Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
Worksheets("Plan1").Activate
Set r1 = Range("A1:B2")
Set r2 = Range("C3:D4")
Set myMultiAreaRange = Union(r1, r2)
myMultiAreaRange.Select
Vamos apresentar mais alguns exemplos do uso da propriedade Cells, a qual é a propriedade mais utilizada do objeto Range.
Este exemplo define o tamanho da fonte para a célula C5 de planilha Plan1 como 14 pontos.
Worksheets("Plan1").Cells(5, 3).Font.Size = 14
Este exemplo limpa a fórmula na célula um da planilha Plan1:
Worksheets("Plan1").Cells(1).ClearContents
Este exemplo percorre as células A1:J4 da planilha Plan1. Se uma célula contiver um valor menor que 0,001, o exemplo substituirá esse valor por 0 (zero).
For rwIndex = 1 to 4
For colIndex = 1 to 10
If Worksheets("Plan1").Cells(rwIndex, colIndex).Value < .001 Then
Worksheets("Plan1").Cells(rwIndex, colIndex) .Value = 0
End If
Next colIndex
Next rwIndex
Este exemplo define o estilo da fonte para as células A1:C5 da planilha Plan1 como itálico.
Worksheets("Plan1").Activate
Range(Cells(1, 1), Cells(5, 3)).Font.Italic = True
Este exemplo varre uma coluna de dados chamada "myRange". Se uma célula tiver o mesmo valor que a célula imediatamente acima, o exemplo exibirá o endereço da célula que contém os dados duplicados.
Set r = Range("myRange")
For n = 1 To r.Rows.Count
If r.Cells(n, 1) = r.Cells(n + 1, 1) Then
MsgBox "Dados duplicados em: " & r.Cells(n + 1, 1).Address
End If
Next n
Existem dezenas de métodos e propriedades do objeto Range. Você encontra exemplos de cada método e propriedade na Ajuda do Excel. No curso de Programação VBA e Criação de Aplicativos como Excel, estudaremos mais o objeto Range.
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: |