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ým rozdílem v deklaraci pole a deklaraci proměnné je, ž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řadíme jednotlivým studentům; níže je příklad kódu stejné.

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é může obsahovat všechna jména studentů.

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

Příklady

Příklad č. 1

K deklaraci nemusíme dělat žádné speciální kódování VBA. Spíše se musíme ří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. To je jeden způsob, jak to udělat. Stále můžeme tento kód zkrátit uzavřením 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 1 až 5 velikostí.

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

Chcete-li přiřadit 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 se nám zobrazí všech pět jmen.

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

We have seen above how the array works, now we will see to dimensional arrays. Two-dimensional arrays concentrate on both rows and columns.

In the above example, we have determined the array’s size as 1 to 5; this either concentrates on rows or columns.

By using two-dimensional arrays, we can concentrate on both rows and columns. For this, we need to enclose two loops.

First, define the variable then late we will decide about the size of the array.

Code:

Sub Two_Array_Example() Dim Student As String End Sub

First, decide row size then decide the column length.

Code:

Sub Two_Array_Example() Dim Student(1 To 5, 1 To 3) As String End Sub

For this, I have structured the data for student names, marks, and grade status.

Now come back to the coding window.

Declare two more variables for a loop.

Code:

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 obrovský koncept; toto je pouze ú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.

Zajímavé články...