Silmukka
"For a = 1 to 10
Cells (a,1).Value = a"
Next a
tulostaa a-sarakkeeseen riveille 1-10 luvut 10.
Mutta miksei alle voi tehdä toista silmukkaa esim:
"For a = 1 to 10
For b = 5 to 15
Cells (a,1).Value = b"
Next a
Next b ",
jolloin edellisen logiikan mukaan a-sarakkeen riveille 1-10 pitäisi tulostua luvut 5-10?
Onko olemassa joku tapa toteuttaa tämä?
"For a = 1 to 10
Cells (a,1).Value = a"
Next a
tulostaa a-sarakkeeseen riveille 1-10 luvut 10.
Mutta miksei alle voi tehdä toista silmukkaa esim:
"For a = 1 to 10
For b = 5 to 15
Cells (a,1).Value = b"
Next a
Next b ",
jolloin edellisen logiikan mukaan a-sarakkeen riveille 1-10 pitäisi tulostua luvut 5-10?
Onko olemassa joku tapa toteuttaa tämä?
Vastaukset 3
Vanhimmat
Sulla on silmukat ristissä! For a...next b, for b...next a ???
Mitähän sä haluat toteuttaa?
Esimerkissäsi tulostetaan riveille 1-10 luku 15. Tämä johtuu nimenomaan tuosta sisäkkäisestä silmukasta.
b-silmukka suoritetaan kokonaan, ennenkuin a-silmukka suoritetaan seuraavan kerran.
Makron toimintaa voi seurata askeltamalla (F8-näppäin), jolloin pääsee kätevästi näkemään, mitä se tekee.
Kaikki tämä tietysti, että nuo next-lauseet on oikeassa järjestyksessä.
vain yhdellä silmukalla jossa määrität b:n suhteessa a:han eli esim. seuraavasti:
---------------------------------
Sub Silmukka()
For a = 1 To 10
Dim b As String
b = a 4
Cells(a, 1).Value = b
Next a
End Sub