Como navegar em planilhas em vba (com exemplos)


Você pode usar os seguintes métodos para navegar pelas planilhas em uma pasta de trabalho do Excel usando VBA:

Método 1: analise todas as planilhas

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    ws.Range("A1").Value = 100

Next ws

End Sub

Esta macro específica percorre cada planilha de uma pasta de trabalho e define o valor na célula A1 de cada planilha como 100.

Método 2: navegar por todas as planilhas, exceto aquelas específicas

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    Select Case ws.Name
        Case Is = "Sheet2", "Sheet3"
        'Do not execute any code for these sheets
        Case Else
        ws.Range("A1").Value = 100
    End Select

Next ws

End Sub

Esta macro específica percorre cada planilha de uma pasta de trabalho e define o valor na célula A1 de cada planilha como 100, exceto para planilhas chamadas Sheet2 e Sheet3 .

Os exemplos a seguir mostram como usar cada um desses métodos na prática com uma pasta de trabalho do Excel contendo quatro planilhas vazias:

Exemplo 1: navegar em todas as planilhas

Podemos usar a seguinte macro para definir o valor da célula A1 em cada planilha de nossa pasta de trabalho como 100:

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    ws.Range("A1").Value = 100

Next ws

Ao executarmos esta macro, o valor da célula A1 em cada planilha da pasta de trabalho será igual a 100:

Exemplo 2: Navegue por todas as planilhas, exceto aquelas específicas

Digamos que queremos percorrer cada planilha e definir o valor da célula A1 em cada planilha como 100, exceto para planilhas chamadas Sheet2 e Sheet3 .

Podemos criar a seguinte macro para fazer isso:

 SubLoopSheets ()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

    Select Case ws.Name
        Case Is = "Sheet2", "Sheet3"
        'Do not execute any code for these sheets
        Case Else
        ws.Range("A1").Value = 100
    End Select

Next ws

End Sub

Ao executarmos esta macro, veremos que Sheet1 e Sheet4 têm um valor de 100 na célula A1 .

No entanto, Sheet2 e Sheet3 não terão valor na célula A1 , pois usamos a função Case para ignorar essas planilhas:

Observe que nestes exemplos, examinamos cada planilha e definimos o valor de uma célula igual a um valor específico, apenas para simplificar.

No entanto, você pode usar sintaxe semelhante com uma instrução For Each para executar tarefas muito mais complicadas em cada planilha, se desejar.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:

VBA: Como contar o número de linhas no intervalo
VBA: Como contar células com texto específico
VBA: Como escrever funções COUNTIF e COUNTIFS

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *