For...next

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
6357
Äänestä

Muut lukivat myös

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.

Äänestä
  • 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?

    Äänestä

  • Luuppi kirjoitti:

    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
    ------------------------

    Äänestä

  • Excelit.fi kirjoitti:

    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!

    Äänestä

  • Luuppi kirjoitti:

    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

    Äänestä

  • ikiluuppi kirjoitti:

    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-

    Äänestä

Kommentoi aloitusta


Luuppi kirjoitti:

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

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu