Acest tutorial vă va învăța cum să parcurgeți matricele în VBA.
Există două moduri principale de a parcurge matricele folosind VBA:
- Pentru fiecare buclă - Pentru fiecare buclă va parcurge fiecare element din matrice.
- Pentru Next Loop - Bucla pentru următoarea buclă va trece prin pozițiile de început și sfârșit specificate ale matricei (Putem folosi funcțiile UBound și LBound pentru a parcurge întreaga matrice).
Pentru fiecare articol din matrice
The Pentru fiecare buclă vă permite să parcurgeți fiecare element al matricei.
12345678910111213141516171819 | Sub LoopForArrayStatic ()'declarați o variantă matriceDim strNames (1 până la 4) ca șir'populează matriceastrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'declarați o variantă pentru a deține elementul matriceiDim element ca variantă'buclă prin întreaga matricePentru fiecare element din strNames'arată elementul în fereastra de depanare.Debug.Print elementBuclăSfârșitul Sub |
Procedura de mai sus va parcurge toate numele din matrice.
Pentru Next Loop
Bucla pentru următorul ciclu va parcurge fiecare element la o poziție specificată de început și sfârșit a matricei.
Buclați printr-o parte din matrice
Puteți specifica manual pozițiile de început și de sfârșit pentru bucla dvs. Acest lucru poate fi adecvat dacă vă cunoașteți dimensiunea matricei și / sau doriți să parcurgeți doar o parte dintr-o matrice.
12345678910111213141516 | Sub LoopForNextStatic ()'declarați o variantă matriceDim strNames (1 până la 4) ca șir'populează matriceastrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'declara un număr întregDim i Integer'bucla de la poziția 2 la poziția 3 a matriceiPentru i = 2 până la 3'arată numele în fereastra imediatăDebug.Print strNames (i)Apoi euSfârșitul Sub |
În exemplul de mai sus, am trecut prin pozițiile 2 și 3 ale matricei. Fereastra imediată va returna numele după cum urmează.
Buclați prin întreaga matrice
Apoi, vom folosi funcțiile UBound și LBound pentru a parcurge o întreagă matrice. Acest lucru este extrem de util în cazul în care pozițiile de început și de sfârșit ale matricei se pot schimba (de exemplu, o matrice dinamică):
123456789101112131415161718 | Sub LoopForNextDynamic ()'declarați o variantă matriceDim strNames () Ca șir'inițializează matriceaReDim strNames (1 la 4)'populează matriceastrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'declara un număr întregDim i Integer'bucla de la limita inferioară a matricei la limita superioară a matricei - întreaga matricePentru i = LBound (strNames) To UBound (strNames)'arată numele în fereastra imediatăDebug.Print strNames (i)Apoi euSfârșitul Sub |