Kako uporabljati zanke For-Next v Excelu 2016 VBA

Najenostavnejša vrsta zanke v programiranju Excel VBA je zanka For-Next. Zanko nadzira spremenljivka števca, ki se začne pri eni vrednosti in se ustavi pri drugi vrednosti. Stavki med stavkom For in naslednjim so stavki, ki se ponovijo v zanki.

Primer For-Next

Naslednji primer uporablja zanko For-Next za seštevanje prvih 1000 pozitivnih števil. Spremenljivka Total se začne kot nič. Nato pride do zanke. Spremenljivka Cnt je števec zanke. Začne se kot 1 in se vsakič skozi zanko poveča za 1. Zanka se konča, ko je Cnt 1000.

Ta primer ima samo en stavek znotraj zanke. Ta stavek doda vrednost Cnt spremenljivki Total. Ko se zanka zaključi, MsgBox prikaže vsoto številk.

Sub AddNumbers()
  Dim Total kot dvojno
  Dim Cnt As Long
  Skupaj = 0
  Za Cnt = 1 do 1000
    Skupaj = Skupaj + Cnt
  Naslednji Cnt
  MsgBox Skupaj
Končni sub

Ker je števec zanke običajna spremenljivka, lahko napišete kodo, da spremenite njeno vrednost v bloku kode med stavkoma For in Next. To pa je zelo slaba praksa.

Primeri For-Next s korakom

Vrednost koraka lahko uporabite za preskok nekaterih vrednosti števcev v zanki For-Next. Tukaj je prejšnji primer, prepisan tako, da sešteje samo liha števila med 1 in 1000:

Sub AddOddNumbers()
  Dim Total kot dvojno
  Dim Cnt As Long
  Skupaj = 0
  Za Cnt = 1 do 1000 korak 2
    Skupaj = Skupaj + Cnt
  Naslednji Cnt
  MsgBox Skupaj
Končni sub

Tokrat se Cnt začne kot 1 in nato prevzame vrednosti 3, 5, 7 itd. Vrednost koraka določa, kako se števec poveča. Upoštevajte, da se zgornja vrednost zanke (1000) dejansko ne uporablja, ker bo najvišja vrednost Cnt 999.

Tukaj je še en primer, ki uporablja vrednost koraka 3. Ta postopek deluje z aktivnim listom in uporabi svetlo sivo senčenje za vsako tretjo vrstico, od vrstice 1 do vrstice 100.

Sub ShadeEveryThirdRow()
  Dim i As Long
  Za i = 1 do 100 3. korak
    Vrstice(i).Notranja.Barva = RGB(200, 200, 200)
  Naslednji i
Končni sub

Oglejte si rezultat izvajanja tega makra.

Kako uporabljati zanke For-Next v Excelu 2016 VBA

Uporaba zanke za uporabo senčenja ozadja za vrstice.

Primer For-Next s stavkom Exit For

Zanka For-Next lahko vključuje tudi enega ali več stavkov Exit For znotraj zanke. Ko VBA naleti na ta stavek, se zanka takoj zaključi.

Naslednji primer prikazuje stavek Exit For. Ta rutina je funkcijski postopek, namenjen uporabi v formuli delovnega lista. Funkcija sprejme en argument (spremenljivko z imenom Str) in vrne znake levo od prve številske števke. Na primer, če je argument »KBR98Z«, funkcija vrne »KBR«.

Funkcija TextPart(Str)
  Dim i As Long
  TextPart = ""
  Za i = 1 do Len(Str)
    Če je Numeric(Mid(Str, i, 1)) Potem
      Izhod za
    Drugače
      Del besedila = Del besedila in sredina (Str, i, 1)
    Konec Če
  Naslednji i
Končna funkcija

Zanka For-Next se začne z 1 in konča s številko, ki predstavlja število znakov v nizu. Koda uporablja funkcijo Mid VBA za ekstrakcijo enega samega znaka znotraj zanke. Če se najde številski znak, se izvede stavek Exit For in zanka se predčasno konča.

Če znak ni številčen, se doda vrnjeni vrednosti (ki je enaka imenu funkcije). Edini čas, ko bo zanka pregledala vsak znak, je, če niz, posredovan kot argument, ne vsebuje številskih znakov.

Ugnezdeni primer For-Next

V zanki imate lahko poljubno število stavkov in ugnezdite zanke For-Next znotraj drugih zank For-Next.

Naslednji primer uporablja ugnezdeno zanko For-Next za vstavljanje naključnih številk v obseg celic 12 vrstic za 5 stolpcev. Upoštevajte, da rutina izvede notranjo zanko (zanko s števcem vrstic) enkrat za vsako ponovitev zunanje zanke (zanko s števcem Col). Z drugimi besedami, podprogram izvede stavek Cells(Row, Col) = Rnd 60-krat.

Kako uporabljati zanke For-Next v Excelu 2016 VBA

Te celice so bile napolnjene z uporabo ugnezdene zanke For-Next.

Sub FillRange()
  Dim Col As Long
  Dim Row As Long
  Za Col = 1 do 5
    Za vrstico = 1 do 12
      Celice (vrstica, stolpec) = Rnd
    Naslednja vrstica
  Naslednji polk
Končni sub

Naslednji primer uporablja ugnezdene zanke For-Next za inicializacijo tridimenzionalnega niza z vrednostjo 100. Ta rutina izvede stavek v sredini vseh zank (izjava dodelitve) 1000-krat (10 * 10 * 10), vsakič z drugačno kombinacijo vrednosti za i, j in k:

Sub NestedLoops()
  Dim MyArray(10, 10, 10)
  Dim i As Long
  Dim j As Long
  Dim k As Long
  Za i = 1 do 10
    Za j = 1 do 10
      Za k = 1 do 10
        MyArray(i, j, k) = 100
    Naslednji k
  Naslednji j
Naslednji i
  ' Druge izjave so tukaj
Končni sub

Tukaj je zadnji primer, ki uporablja ugnezdene zanke For-Next z vrednostjo Step. Ta postopek ustvari šahovnico s spreminjanjem barve ozadja izmeničnih celic.

Kako uporabljati zanke For-Next v Excelu 2016 VBA

Uporaba zank za ustvarjanje vzorca šahovnice.

Števec vrstic se spreminja od 1 do 8. Konstrukt If-Then določa, katero ugnezdeno strukturo For-Next uporabiti. Za lihe vrstice se števec Col začne z 2. Za sode vrstice se števec Col začne z 1. Obe zanki uporabljata vrednost koraka 2, tako da vpliva na nadomestne celice. Dve dodatni stavki naredita celice kvadratne (tako kot prava šahovnica).

Sub MakeCheckerboard()
  Dim R tako dolgo, C tako dolgo
  Za R = 1 do 8
    Če je WorksheetFunction.IsOdd(R) Potem
     Za C = 2 do 8 korak 2
       Celice (R, C). Notranjost. Barva = 255
     Naslednji C
    Drugače
     Za C = 1 do 8 korak 2
       Celice (R, C). Notranjost. Barva = 255
     Naslednji C
    Konec Če
  Naslednji R
  Vrstice(»1:8«).Višina vrstice = 35
  Stolpci(»A:H«).Širina stolpca = 6,5
Končni sub

Leave a Comment

Kako dokazati besedilo v tujem jeziku v Wordu 2016

Kako dokazati besedilo v tujem jeziku v Wordu 2016

V interesu kozmopolitizma vam Word 2016 omogoča delo s tujimi jeziki. Naučite se, kako vnesti in urediti besedilo v tujem jeziku, ter preveriti črkovanje in slovnico.

Filtriranje in razvrščanje podatkov vrtilne tabele v Excelu 2019

Filtriranje in razvrščanje podatkov vrtilne tabele v Excelu 2019

Učinkovito filtriranje in razvrščanje podatkov v vrtilni tabeli Excel 2019 za boljša poročila. Dosežite hitrejše analize z našimi namigi in triki!

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Reševalec v Excelu je močno orodje za optimizacijo, ki lahko naleti na težave. Razumevanje sporočil o napakah reševalca vam lahko pomaga rešiti težave in optimizirati vaše matematične modele.

Teme za PowerPoint 2019

Teme za PowerPoint 2019

Odkrijte različne <strong>teme PowerPoint 2019</strong> in kako jih lahko uporabite za izboljšanje vaših predstavitev. Izberite najboljšo temo za vaše diapozitive.

Kako uporabljati distribucije hi-kvadrat v Excelu

Kako uporabljati distribucije hi-kvadrat v Excelu

Nekateri statistični ukrepi v Excelu so lahko zelo zmedeni, vendar so funkcije hi-kvadrat res praktične. Preberite vse opise funkcij hi-kvadrat za bolje razumevanje statističnih orodij.

Kako dodati obrobo strani v Word 2013

Kako dodati obrobo strani v Word 2013

V tem članku se naučite, kako dodati <strong>obrobo strani</strong> v Word 2013, vključno z različnimi slogi in tehnikami za izboljšanje videza vaših dokumentov.

Kako delati z več dokumenti v Wordu 2013

Kako delati z več dokumenti v Wordu 2013

Ni vam treba omejiti uporabe urejevalnika besedil na delo z enim samim dokumentom. Učinkovito delajte z več dokumenti v Wordu 2013.

Kako dodati komentarje v predstavitev PowerPoint 2013

Kako dodati komentarje v predstavitev PowerPoint 2013

Sodelovanje pri predstavitvi, ustvarjeni v PowerPointu 2013, je lahko tako preprosto kot dodajanje komentarjev. Odkrijte, kako učinkovito uporabljati komentarje za izboljšanje vaših predstavitev.

Kako spremeniti nastavitve preverjanja črkovanja in slovnice v Wordu 2016

Kako spremeniti nastavitve preverjanja črkovanja in slovnice v Wordu 2016

Ugotovite, kako prilagoditi nastavitve preverjanja črkovanja in slovnice v Wordu 2016, da izboljšate svoje jezikovne sposobnosti.

Kaj so izročki v PowerPointu 2013?

Kaj so izročki v PowerPointu 2013?

PowerPoint 2013 vam ponuja različne načine za izvedbo predstavitve, vključno s tiskanjem izročkov. Izročki so ključnega pomena za izboljšanje vaše predstavitve.