For-Next-silmukoiden käyttäminen Excel 2016 VBA:ssa

Yksinkertaisin silmukkatyyppi Excel VBA -ohjelmoinnissa on For-Next -silmukka. Silmukkaa ohjataan laskurimuuttujalla, joka alkaa yhdestä arvosta ja pysähtyy toiseen arvoon. For- ja Next-lauseen välissä olevat lauseet ovat lauseita, jotka toistetaan silmukassa.

Esimerkki seuraavaksi

Seuraava esimerkki käyttää For-Next-silmukkaa summaamaan ensimmäiset 1 000 positiivista lukua. Yhteensä-muuttuja alkaa nollasta. Sitten silmukka tapahtuu. Muuttuja Cnt on silmukkalaskuri. Se alkaa luvusta 1 ja sitä kasvatetaan 1:llä joka kerta silmukan läpi. Silmukka päättyy, kun Cnt on 1 000.

Tässä esimerkissä on vain yksi lause silmukan sisällä. Tämä lauseke lisää Cnt:n arvon Total-muuttujaan. Kun silmukka päättyy, MsgBox näyttää numeroiden summan.

Alalisänumerot()
  Dim Total As Double
  Dim Cnt As Long
  Yhteensä = 0
  Jos Cnt = 1 - 1000
    Yhteensä = Yhteensä + Snt
  Seuraava Cnt
  MsgBox yhteensä
Lopeta ala

Koska silmukkalaskuri on normaali muuttuja, voit kirjoittaa koodin muuttaaksesi sen arvoa For- ja Next-lauseiden välisessä koodilohkossa. Tämä on kuitenkin erittäin huono käytäntö.

For-Next esimerkit askeleella

Voit käyttää Step-arvoa ohittaaksesi joitain laskuriarvoja For-Next-silmukassa. Tässä on edellinen esimerkki, joka on kirjoitettu uudelleen summaamaan vain parittomat luvut välillä 1 ja 1 000:

Sub AddOddNumbers()
  Dim Total As Double
  Dim Cnt As Long
  Yhteensä = 0
  Jos Cnt = 1 - 1000 Vaihe 2
    Yhteensä = Yhteensä + Snt
  Seuraava Cnt
  MsgBox yhteensä
Lopeta ala

Tällä kertaa Cnt alkaa arvosta 1 ja saa sitten arvot 3, 5, 7 ja niin edelleen. Askel-arvo määrittää, kuinka laskuria kasvatetaan. Huomaa, että ylemmän silmukan arvoa (1000) ei itse asiassa käytetä, koska Cnt:n suurin arvo on 999.

Tässä on toinen esimerkki, jossa käytetään Step-arvoa 3. Tämä menettely toimii aktiivisen arkin kanssa ja käyttää vaaleanharmaata varjostusta joka kolmannelle riville riviltä 1 riville 100.

Sub ShadeEveryThirdRow()
  Dim i As Long
  Jos i = 1 - 100 Vaihe 3
    Rivit(i).Sisäpuoli.Väri = RGB(200, 200, 200)
  Seuraavaksi minä
Lopeta ala

Tarkista tämän makron suorittamisen tulos.

For-Next-silmukoiden käyttäminen Excel 2016 VBA:ssa

Käytä silmukkaa taustavarjostuksen lisäämiseen riveille.

For-Next-esimerkki Exit For -lausekkeella

For-Next-silmukka voi sisältää myös yhden tai useamman Exit For -lausekkeen silmukan sisällä. Kun VBA kohtaa tämän käskyn, silmukka päättyy välittömästi.

Seuraava esimerkki esittää Exit For -käskyn. Tämä rutiini on funktiomenettely, joka on tarkoitettu käytettäväksi laskentataulukon kaavassa. Funktio hyväksyy yhden argumentin (muuttujan nimeltä Str) ja palauttaa ensimmäisen numeerisen numeron vasemmalla puolella olevat merkit. Jos argumentti on esimerkiksi "KBR98Z", funktio palauttaa "KBR".

Funktiotekstiosa(Str)
  Dim i As Long
  TextPart = ""
  Jos i = 1 Len(Str)
    Jos IsNumeric(Mid(Str, i, 1)) Sitten
      Poistu For
    Muu
      Tekstiosa = Tekstiosa & keskiosa(Str, i, 1)
    Loppu Jos
  Seuraavaksi minä
Lopeta toiminto

For-Next-silmukka alkaa numerolla 1 ja päättyy numeroon, joka edustaa merkkijonon merkkien määrää. Koodi käyttää VBA:n Mid-funktiota yksittäisen merkin poimimiseen silmukasta. Jos numeerinen merkki löytyy, Exit For -käsky suoritetaan ja silmukka päättyy ennenaikaisesti.

Jos merkki ei ole numeerinen, se liitetään palautettuun arvoon (joka on sama kuin funktion nimi). Ainoa kerta, kun silmukka tutkii jokaista merkkiä, on, jos argumenttina välitetty merkkijono ei sisällä numeerisia merkkejä.

Sisäkkäinen For-Next-esimerkki

Sinulla voi olla silmukassa mikä tahansa määrä lauseita, ja voit sijoittaa For-Next-silmukat muiden For-Next-silmukoiden sisään.

Seuraavassa esimerkissä käytetään sisäkkäistä For-Next-silmukkaa satunnaislukujen lisäämiseen 12 riviltä 5 sarakkeelta solualueelle. Huomaa, että rutiini suorittaa sisäisen silmukan (silmukan rivilaskimella) kerran jokaista ulomman silmukan iteraatiota (silmukka Col-laskimella) varten. Toisin sanoen rutiini suorittaa lauseen Cells(Row, Col) = Rnd 60 kertaa.

For-Next-silmukoiden käyttäminen Excel 2016 VBA:ssa

Nämä solut täytettiin käyttämällä sisäkkäistä For-Next -silmukkaa.

Sub FillRange()
  Dim Col As Long
  Himmeä rivi yhtä pitkä
  Col = 1 - 5
    Rivi = 1 - 12
      Solut (rivi, sarake) = Rnd
    Seuraava rivi
  Seuraava kol
Lopeta ala

Seuraavassa esimerkissä käytetään sisäkkäisiä For-Next-silmukoita kolmiulotteisen taulukon alustamiseen arvolla 100. Tämä rutiini suorittaa käskyn kaikkien silmukoiden keskellä (sijaintikäsky) 1000 kertaa (10 * 10 * 10), joka kerta eri arvojen yhdistelmällä i:lle, j:lle ja k:lle:

Sub NestedLoops()
  Himmeä MyArray (10, 10, 10)
  Dim i As Long
  Himmeä j As Long
  Himmeä k As Long
  Jos i = 1 - 10
    Jos j = 1 - 10
      Jos k = 1 - 10
        OmaMatriisi(i, j, k) = 100
    Seuraava k
  Seuraava j
Seuraavaksi minä
  ' Muut lausunnot menevät tähän
Lopeta ala

Tässä on viimeinen esimerkki, joka käyttää sisäkkäisiä For-Next-silmukoita Step-arvon kanssa. Tämä toimenpide luo shakkilaudan muuttamalla vuorottelevien solujen taustaväriä.

For-Next-silmukoiden käyttäminen Excel 2016 VBA:ssa

Silmukoiden käyttäminen shakkilautakuvion luomiseen.

Rivilaskurin silmukat ovat 1:stä 8:aan. Jos-niin -rakenne määrittää käytettävän sisäkkäisen For-Next-rakenteen. Parittomilla riveillä Col-laskuri alkaa 2:lla. Parillisten rivien Col-laskuri alkaa 1:llä. Molemmat silmukat käyttävät Step-arvoa 2, joten se vaikuttaa vaihtoehtoisiin soluihin. Kaksi lisälausetta tekevät soluista neliömäisiä (ihan kuin oikea shakkilauta).

Sub MakeCheckerboard()
  Dim R As Long, C As Long
  Jos R = 1 - 8
    Jos WorksheetFunction.IsOdd(R) Sitten
     C = 2 - 8 Vaihe 2
       Solut (R, C). Sisustus. Väri = 255
     Seuraavaksi C
    Muu
     C = 1 - 8 Vaihe 2
       Solut (R, C). Sisustus. Väri = 255
     Seuraavaksi C
    Loppu Jos
  Seuraavaksi R
  Rivit ("1:8"). Rivin korkeus = 35
  Sarakkeet("A:H").Sarakkeen leveys = 6,5
Lopeta ala

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa Microsoft Word avaa tiedostot vain luku -tilassa, jolloin niiden muokkaaminen on mahdotonta? Älä huoli, menetelmät ovat alla

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Virheiden korjaaminen virheellisten Microsoft Word -asiakirjojen tulostuksessa. Virheet tulostettaessa Word-asiakirjoja, joissa on muuttuneet fontit, sotkuiset kappaleet, puuttuva teksti tai kadonnut sisältö ovat melko yleisiä. Älä kuitenkaan

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Jos olet piirtänyt PowerPoint-dioihin esityksen aikana kynää tai korostuskynää, voit tallentaa piirustukset seuraavaa esitystä varten tai poistaa ne, jotta seuraavan kerran näytät ne. Aloitat puhtailla PowerPoint-dioilla. Pyyhi kynä- ja korostuskynäpiirrokset noudattamalla näitä ohjeita: Pyyhi rivit yksi kerrallaan […]

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjasto sisältää CSS-tiedostoja, Extensible Stylesheet Language (XSL) -tiedostoja ja kuvia, joita käyttävät ennalta määritetyt sivupohjat, sivuasettelut ja säätimet SharePoint 2010:ssä. CSS-tiedostojen etsiminen julkaisusivuston tyylikirjastosta: Valitse Sivuston toiminnot→ Näytä Kaikki sivuston sisältö. Sivuston sisältö tulee näkyviin. Style-kirjasto sijaitsee […]

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Älä hukuta yleisöäsi jättimäisillä numeroilla. Microsoft Excelissä voit parantaa koontinäyttöjesi ja raporttiesi luettavuutta muotoilemalla numerot näyttämään tuhansia tai miljoonia.

SharePoint-sivustojen jakaminen ja seuraaminen

SharePoint-sivustojen jakaminen ja seuraaminen

Opi käyttämään SharePointin sosiaalisen verkostoitumisen työkaluja, joiden avulla yksilöt ja ryhmät voivat kommunikoida, tehdä yhteistyötä, jakaa ja pitää yhteyttä.

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Juliaanisia päivämääriä käytetään usein valmistusympäristöissä aikaleimana ja pikaviitteenä eränumerolle. Tämän tyyppisen päivämääräkoodauksen avulla jälleenmyyjät, kuluttajat ja huoltoedustajat voivat tunnistaa tuotteen valmistusajankohdan ja siten tuotteen iän. Julian-päivämääriä käytetään myös ohjelmoinnissa, armeijassa ja tähtitiedessä. Erilainen […]

Access-verkkosovelluksen luominen

Access-verkkosovelluksen luominen

Voit luoda verkkosovelluksen Access 2016:ssa. Mikä verkkosovellus sitten on? No, verkko tarkoittaa, että se on verkossa, ja sovellus on vain lyhenne sanoista "sovellus". Mukautettu verkkosovellus on online-tietokantasovellus, jota käytetään pilvestä selaimen avulla. Rakennat ja ylläpidät verkkosovellusta työpöytäversiossa […]

Pikakäynnistyspalkki SharePoint 2010:ssä

Pikakäynnistyspalkki SharePoint 2010:ssä

Useimmat SharePoint 2010:n sivut näyttävät navigointilinkkien luettelon pikakäynnistyspalkissa sivun vasemmassa reunassa. Pikakäynnistyspalkki näyttää linkit esitellyn sivuston sisältöön, kuten luetteloihin, kirjastoihin, sivustoihin ja julkaisusivuihin. Pikakäynnistyspalkki sisältää kaksi erittäin tärkeää linkkiä: Koko sivuston sisältö -linkki: […]

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Yksinkertaisille ongelmille Excelin Ratkaisija löytää yleensä nopeasti optimaaliset Ratkaisijamuuttujien arvot tavoitefunktiolle. Mutta joissakin tapauksissa Ratkaisijalla on vaikeuksia löytää Solver-muuttujan arvoja, jotka optimoivat tavoitefunktion. Näissä tapauksissa Ratkaisija näyttää yleensä viestin tai virheilmoituksen, joka kuvaa tai käsittelee ongelmaa, jonka […]