Kysyisin VBA:n (excel) For loopista:
Miten tehdään for looppi jos halutaan käydä läpi jotkut arvot (tässä tapauksessa rivit) kun arvot eivät ole mitenkään säännölliset?
Tarkoitan tätä:
for rivi=1 to 10 -> käy läpi rivit 1...10, mutta entäpä jos haluan käydä läpi vain rivit 1, 3, 14, 32, 33 jne..?
Olen ymmärtänyt että nuo numerot saa jotenkin koodin seassa olevaan taulukkoon, mutta miten?
Kiitos
Miten tehdään for looppi jos halutaan käydä läpi jotkut arvot (tässä tapauksessa rivit) kun arvot eivät ole mitenkään säännölliset?
Tarkoitan tätä:
for rivi=1 to 10 -> käy läpi rivit 1...10, mutta entäpä jos haluan käydä läpi vain rivit 1, 3, 14, 32, 33 jne..?
Olen ymmärtänyt että nuo numerot saa jotenkin koodin seassa olevaan taulukkoon, mutta miten?
Kiitos
Vastaukset 6
Vanhimmat
Ainakin itse pääsin katsomaan kun painoin painiketta, mutta en aivan ymmärtänyt sitä olitko ajanut kaikki ruudut täyteen?? Jos olit ajanut kaikki A ruudukkoon niin vaihda seuraaavien paikka, b ruuduukkoon jne.
Hetkinen, nyt en oikein ymmärtänyt, mitä pääsit katsomaan painamalla painiketta ja miten ajanut ja mitkä ruudut täyteen..?
Tarkoitin seuraavanlaista tapausta: Haluan muotoilla vaikkapa joka toisen rivin solut jollakin tapaa rivialueella 1-10, joten toimiva koodi voisi olla tällainen:
for MuotoiltavaRivi=2 to 10 step 2
*Muotoilukoodi riville MuotoiltavaRivi*
next MuotoiltavaRivi
Mutta kun haluan muotoilla vaikkapa rivit 2, 5, 9, 35, 53, 167 niin miten tuo tehdään For...next loopilla?
olisi tehdä For-Next lausekkeen sisälle IF-lauseke joka tutkisi määriteltyjen rivien tietyn sarakkeen soluja ja jos solussa olisi sovittu merkintä (esim. x) niin muotoilu toteutuisi, muuten ei. Tällöin olisi helppo valita rivejä suoraan taulukosta ilman koodiin koskemista.
------------------------
for MuotoiltavaRivi=2 to 10
if activecell.value = "x" then
*Muotoilukoodi riville MuotoiltavaRivi*
else
*Ei muotoilua*
end if
next MuotoiltavaRivi
------------------------
Niin, tuotahan voisi kokeilla, kiitos!
kasaa taulukkoon rivinumerot jotka haluat käydä läpi ja käy tuo taulukko luupissa läpi ja tee temput riville, jonka numero löytyy tuolta taulukosta
Ilmeisesti alkuperäisen ajatuksen mukainen ratkaisu:
Dim SinisetSarakkeet As Variant
SinisetSarakkeet = Array(4, 9, 26, 43, 60, 65, 69)
For VäriMuutos = 0 To 6
Cells(VapaaRivi, SinisetSarakkeet(VäriMuutos)).Select
With Selection.Interior
.ColorIndex = 8
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Next VäriMuutos
-Pasi-