Pole deklarace VBA | Jak deklarovat pole ve VBA?

Pole deklarace Excel VBA

Deklarace pole ve VBA je velmi podobná deklaraci proměnných, která se provádí stejným příkazem dim nebo statickým veřejným nebo soukromým příkazem, jediný rozdíl v deklaraci pole a deklaraci proměnné spočívá v tom, že při deklaraci pole musíme poskytnout velikost pole, které je horní hranicí pole a spodní hranicí pole.

V kódu VBA můžeme deklarovat jedno pole proměnných, které může obsahovat počet proměnných místo deklarace jednotlivých proměnných. To může pomoci snížit počet řádků v kódu.

Pole je druh proměnné, která může obsahovat více než jednu hodnotu, na rozdíl od běžných proměnných, které mohou obsahovat pouze jednu hodnotu najednou. Pole je pokročilou verzí deklarace proměnných ve VBA. Představte si například situaci, kdy chcete proměnným přiřadit 5 jmen studentů, a v obecné praxi deklarujeme pět proměnných pro všech pět proměnných, které jednotlivě přiřazujeme jednotlivým studentským jménům, níže je příklad stejného kódu.

Kód:

 Sub Array_Example () Dim Student1 jako řetězec Dim Student2 jako řetězec Dim Student3 jako řetězec Dim Student4 jako řetězec Dim Student5 jako řetězec End Sub 

Místo deklarace tolika proměnných, co takhle myšlenka deklarovat jedno pole proměnných, které pojme všechna jména studentů.

Ano, je to možné deklarováním pole ve VBA.

Příklady

Tuto šablonu Excel VBA Declare Array Excel si můžete stáhnout zde - Šablona VBA Declare Array Excel

Příklad č. 1

Abychom prohlásili, že nemusíme dělat žádné speciální kódování VBA, musíme se řídit jednoduchými koncepty.

Nejprve spusťte podproces.

Kód:

 Sub Array_Example () End Sub 

Nyní jako obvykle deklarujte proměnnou jako řetězec.

Kód:

 Sub Array_Example () Dim Student jako řetězec End Sub 

Jakmile je proměnná deklarována, ujistěte se, kolik hodnot by měla obsahovat. V tomto případě chci uložit pět jmen studentů, takže nyní musíme opravit velikost pole, tj. 1 až 5. Dodejte totéž proměnné v závorkách.

Kód:

 Sub Array_Example () Dim Student (1 až 5) jako řetězec End Sub 

Nyní pro tuto jedinou proměnnou můžeme uložit 5 jmen studentů.

Kód:

 Sub Array_Example () Dim Student (1 až 5) As String Student (1) = "John" Student (2) = "Peter" Student (3) = "Ricky" Student (4) = "Michael" Student (5) = „Anderson“ End Sub 

Podívejte se, kolik řádků jsme snížili deklarováním proměnné jako pole. Toto je jeden způsob, jak tento kód stále zkrátit uzavřením tohoto kódu uvnitř smyček ve VBA.

Nyní například pět stejných jmen, která mám v buňkách listu

Nyní chci ukázat tato čísla v okně zpráv ve VBA, ok, deklarujme ještě jednu proměnnou pro smyčky jako datový typ Integer.

Kód:

 Sub Array_Example () Dim Student (1 až 5) jako řetězec Dim K jako celé číslo End Sub 

Jako obvykle jsem si ponechal proměnnou pole jako velikost 1 až 5.

Nyní otevřete smyčku FOR NEXT ve VBA a protože máme pět jmen, zadejte limit jako 1 až 5.

Kód:

 Sub Array_Example () Dim Student (1 až 5) As String Dim K As Integer For K = 1 To 5 Next K End Sub 

Abychom přiřadili hodnoty proměnné pole, nemusíme následovat předchozí způsob zobrazování Student (1), Student (2) takto pro proměnné „k“ polohy zásobovacích smyček čísel.

Kód:

 Sub Array_Example () Dim Student (1 až 5) As String Dim K As Integer For K = 1 To 5 Student (K) = Next K End Sub 

Pro tuto proměnnou pole potřebujeme hodnoty z listu, takže pomocí vlastnosti CELLS získáme hodnoty z listu.

Kód:

 Sub Array_Example () Dim Student (1 až 5) As String Dim K As Integer For K = 1 To 5 Student (K) = Cells (K, 1). Hodnota Next K End Sub 

Nyní prostřednictvím okna se zprávou zobrazte hodnotu proměnné pole.

Kód:

 Sub Array_Example () Dim Student (1 až 5) As String Dim K As Integer For K = 1 To 5 Student (K) = Cells (K, 1). Hodnota MsgBox Student (K) Další K End Sub 

Nyní spusťte kód, v okně se zprávou uvidíme křestní jméno. Opětovným stisknutím tlačítka Ok zobrazíte druhé jméno. Stisknutím tlačítka Ok můžeme vidět všech pět jmen.

Příklad č. 2 - Dvourozměrná pole

Viděli jsme výše, jak pole funguje, nyní se podíváme na dimenzionální pole. Dvojrozměrná pole se soustředí na řádky i sloupce.

Ve výše uvedeném příkladu jsme určili velikost pole jako 1 až 5, toto se buď soustředí na řádky nebo sloupce.

Použitím dvourozměrných polí se můžeme soustředit na řádky i sloupce. K tomu musíme uzavřít dvě smyčky.

Nejprve definujte proměnnou, později se rozhodneme o velikosti pole.

Kód:

 Sub Two_Array_Example () Dim Student jako řetězec End Sub 

Nejprve rozhodněte o velikosti řádku a poté o délce sloupce.

Kód:

 Sub Two_Array_Example () Dim Student (1 až 5, 1 až 3) jako řetězec End Sub 

Za tímto účelem jsem strukturoval data pro jméno studenta, známky a stav známky.

Nyní se vraťte zpět do kódovacího okna.

Deklarujte další dvě proměnné pro smyčku.

Kód:

 Sub Two_Array_Example () Dim Student (1 až 5, 1 až 3) jako řetězec Dim K jako celé číslo, J jako celé číslo End Sub 

Nyní uzavřete smyčku, jak je znázorněno níže.

Kód:

 Sub Two_Array_Example () Dim Student (1 až 5, 1 až 3) As String Dim k As Integer, J As Integer For k = 1 To 5 For J = 1 To 3 Worksheets ("Student List"). Select Student (k, J) = Buňky (k, J). Pracovní listy hodnoty ("Kopírovat list"). Vyberte buňky (k, J). Hodnota = Student (k, J) Další J Další k Konec Sub 

Co to udělá, je, že zkopíruje data z listu „Seznam studentů“ a vloží je do „Kopírovat list“.

Věci k zapamatování

  • Pole je rozsáhlý koncept, jedná se pouze o úvodní část.
  • Abyste porozuměli deklaraci pole, potřebujete pokročilé kódovací dovednosti.
  • Čím více budete ve svém kódu používat pole, tím více si na něj zvyknete.

$config[zx-auto] not found$config[zx-overlay] not found