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