Curso de Excel Avançado em 120 Lições - 420 páginas de conteúdo

Capa do CURSO Sobre o autor:     Júlio Battisti Página Principal Curso de Excel Básico
Módulo 1 Módulo 2 Módulo 3 Módulo 4 Módulo 5 Módulo 6
Modulo 6 - Lição 19 - Worksheet e Range - Propriedades e Métodos - Parte III
Lição Anterior Índice do Curso Próxima Lição


Lição 19: Worksheet e Range – Propriedades e Métodos Parte III

Vamos ver mais alguns exemplos de trabalho com células e faixas de células.

 

Loop através de um intervalo de células:

 

Ao usar o VBA, você freqüentemente precisa executar o mesmo bloco de instruções em cada célula de um intervalo de células. Para fazer isso, você combina uma instrução de loop com um ou mais métodos para identificar cada célula, uma de cada vez, e executa a operação.

 

Uma maneira de fazer loop através de um intervalo é usar o loop For...Next (descrito no Módulo 5) com a propriedade Cells. Usando a propriedade Cells, você pode substituir o contador do loop (ou outras variáveis ou expressões) pelos números de índice das células. No exemplo seguinte, a variável counter é substituída pelo índice de linha. O seguinte exemplo faz um loop através de um intervalo C1:C20, definindo como 0 (zero) qualquer número cujo valor absoluto seja menor que 0,01.

 

    For counter = 1 To 20

        Set curCell = Worksheets("Sheet1").Cells(counter, 3)

        If Abs(curCell.Value) < 0.01 Then curCell.Value = 0

    Next counter

 

Uma outra maneira mais fácil de se fazer um loop através de um intervalo é usar um loop For Each...Next (descrito no Módulo 5) com a coleção de células retornada pelo método Range. O VBA define automaticamente uma variável de objeto para a próxima célula cada vez que o loop é executado. O seguinte exemplo faz um loop através do intervalo A1:D10, definindo como 0 (zero) qualquer número cujo valor absoluto seja menor que 0,01.

 

    For Each c In Worksheets("Sheet1").Range("A1:D10").Cells

        If Abs(c.Value) < 0.01 Then c.Value = 0

    Next

 

Se você não souber os limites do intervalo pelo qual deseja fazer o loop, você pode usar a propriedade CurrentRegion para retornar o intervalo que envolve a célula ativa. Por exemplo, o exemplo seguinte, quando executado de uma planilha, faz um loop através do intervalo que envolve a célula ativa, definindo como 0 (zero) qualquer número cujo valor absoluto seja menor que 0,01.

 

    For Each c In ActiveCell.CurrentRegion.Cells

        If Abs(c.Value) < 0.01 Then c.Value = 0

    Next

Selecionar e ativar células:

 

Quando você trabalha com o Microsoft Excel, você geralmente seleciona uma célula ou células e, em seguida, efetua uma ação, como formatar as células ou inserir valores nelas. No VBA, normalmente não é necessário selecionar células antes de modificá-las.

 

Por exemplo, se você desejar inserir uma fórmula na célula D6 usando o Visual Basic, você não terá que selecionar o intervalo D6. Você precisa apenas retornar o objeto Range e, em seguida, definir a propriedade Formula com a fórmula desejada, conforme mostrado no exemplo seguinte.

 

Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)"

 

Usar o método Select e a propriedade Selection:

 

O método Select ativa planilhas e objetos em planilhas; a propriedade Selection retorna um objeto representando a seleção atual na planilha ativa da pasta de trabalho ativa. Antes de você poder usar com êxito a propriedade Selection, você precisa ativar uma pasta de trabalho, ativar ou selecionar uma planilha e, em seguida, selecionar um intervalo (ou outro objeto) usando o método Select.

 

O gravador de macro costuma criar macros que usam o método Select e a propriedade Selection. O exemplo seguinte foi criado pelo uso do gravador de macro, e ilustra como Select e Selection funcionam juntas.

 

    Sheets("Sheet1").Select

    Range("A1").Select

    ActiveCell.FormulaR1C1 = "Name"

    Range("B1").Select

    ActiveCell.FormulaR1C1 = "Address"

    Range("A1:B1").Select

    Selection.Font.Bold = True

 

O exemplo seguinte realiza a mesma tarefa sem ativar nem selecionar a planilha ou as células.

 

    Worksheets("Sheet1").Range("A1") = "Name"

    Worksheets("Sheet1").Range("B1") = "Address"

    Worksheets("Sheet1").Range("A1:B1").Font.Bold = True

 

Selecionar células na planilha ativa:

 

Se você usa o método Select para selecionar células, esteja ciente de que Select só funciona na planilha ativa. Se você executar o seu procedimento Sub a partir do módulo, o método Select falhará a menos que o seu procedimento ative a planilha antes de usar o método Select em um intervalo de células. Por exemplo, o exemplo seguinte copia uma linha de Sheet1 para Sheet2 na pasta de trabalho ativa.

 

    Worksheets("Sheet1").Rows(1).Copy

    Worksheets("Sheet2").Select

    Worksheets("Sheet2").Rows(1).Select

    Worksheets("Sheet2").Paste

 

Ativar uma célula dentro de uma seleção:

 

Você pode usar o método Activate para ativar uma célula dentro de uma seleção. Só pode haver uma célula ativa, mesmo quando um intervalo de células é selecionado. O exemplo seguinte seleciona um intervalo e, em seguida, ativa uma célula dentro do intervalo sem alterar a seleção.

 

    Worksheets("Sheet1").Activate

    Range("A1:D4").Select

    Range("B2").Activate

 

Trabalhar com a célula ativa:

 

A propriedade ActiveCell retorna um objeto Range representando a célula que está ativa. Você pode aplicar qualquer das propriedades ou métodos de um objeto Range à célula ativa, como no exemplo seguinte.

 

    Worksheets("Sheet1").Activate

    ActiveCell.Value = 35

 

Observação:  Você só pode trabalhar com a célula ativa quando a planilha na qual ela se encontra é a planilha ativa.

 

Mover a célula ativa:

 

Você pode usar o método Activate para designar qual célula é a célula ativa. Por exemplo, o exemplo seguinte torna B5 a célula ativa e, em seguida, a formata com negrito.

 

    Worksheets("Sheet1").Activate

    Worksheets("Sheet1").Range("B5").Activate

    ActiveCell.Font.Bold = True

 

Observação:  Para selecionar um intervalo de células, use o método Select. Para tornar uma única célula a célula ativa, use o método Activate.

 

Você pode usar a propriedade Offset para mover a célula ativa. O exemplo seguinte insere texto na célula ativa do intervalo selecionado e, em seguida, move a célula ativa uma célula para a direita sem alterar a seleção.

 

    Worksheets("Sheet1").Activate

    Range("A1:D10").Select

    ActiveCell.Value = "Monthly Totals"

    ActiveCell.Offset(0, 1).Activate

 

Selecionar as células ao redor da célula ativa:

 

A propriedade CurrentRegion retorna um intervalo de células delimitado por linhas e colunas em branco. No exemplo seguinte, a seleção é expandida para incluir as células adjacentes à célula ativa, que contenham dados. Em seguida, esse intervalo é formatado com o formato Currency.

 

    Worksheets("Sheet1").Activate

    ActiveCell.CurrentRegion.Select

    Selection.Style = "Currency"

Todos os direitos reservados: ® Júlio Battisti, 2002

Lição Anterior Índice do Curso Próxima Lição
Módulo 1 Módulo 2 Módulo 3 Módulo 4 Módulo 5 Módulo 6
Capa do CURSO Sobre o autor:     Júlio Battisti Página Principal Curso de Excel Básico