Usuário com melhor resposta
Duvida: Estrutura - For Each

Pergunta
-
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
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
Todas as Respostas
-
Abraão,
Ex:
Code SnippetDim 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.
NextComo 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 SnippetFor a = 10 To 1 Step -1
' Loop aqui
NextCode SnippetFor a = 11 To 20
' Loop aqui
NextCertifique-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
-
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! -
Olá...
Uma maneira de percorrer uma tabela é assim..Este exemplo percorre todos registro da tabela mostrando o conteudo do campo data da tabela..
Code SnippetSub 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 SubAté..
Não se esqueça de marcar a resposta como respondida se solucionar..
-
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 ThenResume Next 'Causa do ErroElsei = i +1End Ifnext 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!! -
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
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
-