Como iterar por todas as planilhas usando vba no excel?

Existem duas maneiras de examinar todas as planilhas que você possui em uma pasta de trabalho.

  • PARA O PRÓXIMO LOOP
  • PARA CADA CURL

1. Use para cada loop

Como você sabe, com FOR EACH você pode iterar sobre todos os objetos da coleção e em uma pasta de trabalho, as planilhas são uma coleção de todas as planilhas.

Use as seguintes etapas:

  1. Primeiro, declare uma variável para referenciar uma planilha para o loop.
    declare-a-variable-to-refer
  2. Depois disso, inicie o loop com a palavra-chave “For each” e consulte cada planilha da pasta de trabalho.
    start-the-loop-with-the-keyword
  3. Agora suponha que você queira inserir um valor na célula A1 de cada planilha, você pode usar o código de gravação da seguinte forma.
    want-to-enter-a-value-in-the-cell
  4. No final, use a palavra-chave “End” para encerrar o loop.
    use-the-keyword-end

Links úteis: Executar uma macroGravador de macroEditor Visual BasicManual pessoal de macros

 Sub vba_loop_sheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Range("A1").Value = "Yes" Next ws End Sub

Este código percorre cada planilha e insere o valor na célula A1 de cada planilha. A vantagem de usar esse método é que ele percorre todas as planilhas da pasta de trabalho.

E se você quiser navegar por todas as planilhas em uma pasta de trabalho fechada, use o código abaixo.

 Sub vba_loop_sheets() Dim wb As Workbook Dim ws As Worksheet Application.DisplayAlerts = False Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") For Each ws In wb.Worksheets ws.Range("A1").Value = "Done" Next ws wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub

2. Use o loop For Next

Você também pode fazer um loop usando o loop FOR NEXT , onde você pode usar o número de folhas para decidir quantos loops fazer e usar o contador de loops para se referir a cada folha.

Aqui estão as etapas que você precisa seguir:

  1. Primeiro, você precisa declarar duas variáveis para armazenar o valor de contagem do loop e uma para o número de planilhas que você possui na pasta de trabalho.
    declare-to-variable-to-write-count-value
  2. Agora, defina o valor da variável “shtCount” equivalente ao número de planilhas que você possui na pasta de trabalho.
    set-the-value-for-the-shtcount
  3. Depois disso, inicie o código do loop usando a palavra-chave “For i” e use a contagem de folhas do valor máximo para o contador do loop.
    start-the-code
  4. A partir daqui, você precisa usar o contador de loops para percorrer todas as planilhas e inserir o valor “Sim” na célula A1 de cada planilha.
    use-the-loop-counter-to-loop

Código completo

 Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long shtCount = Sheets.Count For i = 1 To shtCount Sheets(i).Range("A1").Value = "Yes" Next i End Sub

E se você quiser navegar em uma pasta de trabalho fechada, use o código a seguir.

 Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") shtCount = wb.Sheets.Count Application.DisplayAlerts = False For i = 1 To shtCount wb.Sheets(i).Range("A1").Value = "Yes" Next i wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub

Adicione um comentário

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