none
Duvida: Estrutura - For Each RRS feed

  • Pergunta

  • Olá pessoal!!
    Bom...
    Tenho um codigo que deve ser executado varias vezes dependedo do numero de dias
    do mes (que é uma variavel)!
    Só que não sei como ficaria a sintaxe

    For Each DiadoMes in Mes
    //codigo
    next

    Muito obrigado galera!
    terça-feira, 13 de janeiro de 2009 20:41

Respostas

  •  Tente assim

    Sub teste()  
    Dim x, i As Integer  
     
    For x = 0 To 5  
        If i <> 3 Then  
           i = i + 1  
        End If  
    Next x  
     
    End Sub  
     
    Quando i=3 vai pular para o próximo...

    Até..

    Não se esqueça de marcar as respostas como respondida..

    • Marcado como Resposta Abraão Alves quarta-feira, 4 de fevereiro de 2009 15:06
    terça-feira, 3 de fevereiro de 2009 16:28

Todas as Respostas

  • Abraão,

     

    Ex:

    Code Snippet
    Dim arr As Integer() = { 1, 2, 3 }
    Dim i As Integer
    For Each i In arr
         ' Durante cada interação do for each assume um dos 3 valores
         ' 1, 2, ou 3 como inteiro.
    Next

     

     

    Como vc pode notar quando vc trabalhar com o For each vc deve varrer um array, em nosso caso temos o "arr" array.

     

    No entanto utilizando o For each vc poder quando tem necessidade de trabalhar com posições de um array ou seja varrear o array determinando posições nesse caso é mais aconselhado vc esta utilizando um For To

     

    Ex: For To

    Code Snippet

    For a = 10 To 1 Step -1
         ' Loop aqui
    Next

     

     

    Code Snippet
    For a = 11 To 20
         ' Loop aqui
    Next

     

     

    Certifique-se premeio que vc variável pertence a um conjunto de vetores de um array para poder utilizar o seu laço, vale observar que geralmente para usabilidades efetuadas com datas utilizasse enum.

     

    Abraços,

     

    Leandro Rodrigues

    terça-feira, 13 de janeiro de 2009 22:01

  • Oi Leandro!
    Fiquei sabendo que além de arrays, eu posso tambem utilizar a estrutura "For each" em objetos e coleções.
    Então gostaria de saber se existe alguma coleção de objetos no Office que retorne um conjunto de datas.

    Se não existir, como faço para percorrer as linhas de uma coluna de uma tabela no Access via VBA.

    EX:

    For each Registros IN Tabela1.Campo1
     'Codigo
    next

    O objetivo deste codigo é executar-lo igual ao numero de registros do
    campo de uma tabela e ter a oportunidade de aproveitar o valor de cada registro.
    Muito Obrigado pela ajuda!

    quinta-feira, 22 de janeiro de 2009 18:34
  • Olá...

     

    Uma maneira de percorrer uma tabela é assim..Este exemplo percorre todos registro da tabela mostrando o conteudo do campo data da tabela..

    Code Snippet

     

     

    Sub Percorre()
    Dim RS As Recordset
    Set RS = CurrentDb.OpenRecordset("Tabela1") 'Nome da tabela
    If RS.RecordCount = 0 Then Exit Sub
    RS.MoveFirst
    Do While Not RS.EOF
        MsgBox RS.Fields("Data")  'Campo data
        RS.MoveNext
    Loop
    End Sub

     

     


    Até..

    Não se esqueça de marcar a resposta como respondida se solucionar..

    segunda-feira, 26 de janeiro de 2009 18:35
  • Muito OrigadU!!!!
    Deu certo mesmo!!!

    Só que agora estou com outra duvida tambem com relação ao Loop "For".
    É o seguinte:


    Tenho esse codigo

    Code Snippet
    sub teste ( )
    dim x, i as Integer

    For x = 0 to 5

    If i = 3 Then
    Resume Next 'Causa do Erro
    Else
    i = i +1
    End If
    next x
    end sub


    Estou querendo uma estrutura que passe para o proximo valor de x quando i =3 e continui o loop.

    Só que esse codigo só retorna erro.
    Já tentei tambem apenas a instrução Next x, mas não dá certo.

    Alguem poderia me dar uma dika?
    Muito obrigado pela atenção!!

    quarta-feira, 28 de janeiro de 2009 20:42
  •  Tente assim

    Sub teste()  
    Dim x, i As Integer  
     
    For x = 0 To 5  
        If i <> 3 Then  
           i = i + 1  
        End If  
    Next x  
     
    End Sub  
     
    Quando i=3 vai pular para o próximo...

    Até..

    Não se esqueça de marcar as respostas como respondida..

    • Marcado como Resposta Abraão Alves quarta-feira, 4 de fevereiro de 2009 15:06
    terça-feira, 3 de fevereiro de 2009 16:28
  • É isso mesmo!!
    Muito obrigado pela ajuda!

    Meu codigo tinha ficado assim:

    For x=1 to 5

    If i=2 then
    'não faz nada
    Else
    i=i +1
    end if

    next x

    O mesmo efeito, porém mais linhas de codigo.
    Muito obrigado mesmo Evangelista.

    quarta-feira, 4 de fevereiro de 2009 15:09