Tento tutoriál vás naučí, jak procházet poli ve VBA.
Existují dva primární způsoby, jak procházet poli pomocí VBA:
- Pro každou smyčku - For For Loop bude procházet každou položkou v poli.
- Pro další smyčku - For For Next Loop bude procházet specifikovanými počátečními a koncovými polohami pole (Pro procházení celého pole můžeme použít funkce UBound a LBound).
Pro každou položku v poli
The Pro každou smyčku umožňuje procházet každým prvkem pole.
12345678910111213141516171819 | Sub LoopForArrayStatic ()'deklarujte variantní pole.'Dim strNames (1 až 4) jako řetězec'naplnit polestrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'deklarujte variantu pro uložení prvku poleZtlumit položku jako variantu'smyčka přes celé polePro každou položku v strNames'zobrazit prvek v ladicím okně.' show the element in the debug window.Položka Debug.PrintSmyčkaEnd Sub |
Výše uvedený postup bude procházet všemi jmény v poli.
Pro další smyčku
Smyčka For Next Loop bude procházet každou položku v zadané počáteční a koncové poloze pole.
Smyčka přes část pole
Počáteční a koncovou polohu smyčky můžete zadat ručně. To může být vhodné, pokud znáte velikost pole a/nebo chcete pouze procházet částí pole.
12345678910111213141516 | Sub LoopForNextStatic ()'deklarujte variantní pole.'Dim strNames (1 až 4) jako řetězec'naplnit polestrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'deklarujte celé číslo.'Dim i As Integer'smyčka z pozice 2 do polohy 3 polePro i = 2 až 3'zobrazit jméno v bezprostředním okněDebug.Print strNames (i)Příště jáEnd Sub |
Ve výše uvedeném příkladu jsme smyčkou prošli pozice 2 a 3 pole. Okamžité okno vrátí názvy následujícím způsobem.
Smyčka skrz celé pole
Dále použijeme funkce UBound a LBound k procházení celého pole. To je velmi užitečné, pokud se počáteční a koncové pozice pole mohou změnit (například dynamické pole):
123456789101112131415161718 | Sub LoopForNextDynamic ()'deklarujte variantní pole.'Dim strNames () jako řetězec'inicializujte poleReDim strNames (1 až 4)'naplnit polestrNames (1) = "Bob"strNames (2) = "Peter"strNames (3) = "Keith"strNames (4) = "Sam"'deklarujte celé číslo.'Dim i As Integer'smyčka od dolní hranice pole k horní hranici pole - celé polePro i = LBound (strNames) To UBound (strNames)'zobrazit jméno v bezprostředním okněDebug.Print strNames (i)Příště jáEnd Sub |