Pole Excel VBA: Co je to, jak používat a typy polí ve VBA
Co je VBA Array?
Pole je definováno jako paměťové místo schopné uložit více než jednu hodnotu. Všechny hodnoty musí být stejného datového typu. Řekněme, že chcete uložit seznam svých oblíbených nápojů do jediné proměnné, můžete k tomu použít pole VBA.
Pomocí pole můžete odkazovat na související hodnoty pod stejným názvem. K jejich rozlišení můžete použít index nebo dolní index. Jednotlivé hodnoty jsou označovány jako prvky pole Excel VBA. Jsou souvislé od indexu 0 až po nejvyšší hodnotu indexu.
Tento tutoriál předpokládá, že používáte Microsoft vynikat verze 2013. Poznatky stále platí pro další verze Microsoft Excel také.
Jaké jsou výhody polí?
Následují některé z výhod, které nabízí funkce pole VBA
- Seskupte logicky související data dohromady – řekněme, že chcete uložit seznam studentů. Můžete použít jednu proměnnou pole, která má oddělená umístění pro kategorie studentů, tj. mateřská škola, základní, střední, střední škola atd.
- Pole usnadňují psaní udržovatelného kódu. Pro stejná logicky související data umožňuje definovat jednu proměnnou namísto definování více než jedné proměnné.
- Lepší výkon – jakmile je pole definováno, je rychlejší načítat, třídit a upravovat data.
Typy polí ve VBA
VBA podporuje dva typy polí, jmenovitě;
- statický – Tyto typy polí mají pevně stanovený počet prvků, které lze uložit. Nelze změnit velikost datového typu statického pole. Jsou užitečné, když chcete pracovat se známými entitami, jako je počet dní v týdnu, pohlaví atd.Pro příklad: Dim ArrayMonth(12) As String
- Dynamický – Tyto typy polí nemají pevně daný předem určený počet prvků, které lze uložit. Ty jsou užitečné při práci s entitami, jejichž počet nelze předem určit.Pro příklad: Dim ArrayMonth() jako varianta
Syntaxe pro deklaraci polí
Statická pole
Syntaxe pro deklaraci Statické pole je následující:
Dim arrayName (n) as datatype
TADY,
Kód | Akce |
---|---|
Dim arrayName (n) datový typ |
|
Dynamická pole
Syntaxe pro deklaraci DYNAMICKÝ pole je následující:
Dim arrayName() as datatype ReDim arrayName(4)
TADY,
Kód | Akce |
---|---|
Dim arrayName () datový typ |
|
ReDim arrayName(4) |
|
Rozměry pole
Pole může být jednorozměrné, dvourozměrné nebo vícerozměrné.
- Jeden rozměr: V této dimenzi pole používá pouze jeden index. Například určitý počet lidí každého věku.
- Dva rozměry: V této dimenzi pole používá dva indexy. Například určitý počet studentů v každé třídě. Vyžaduje počet tříd a počet studentů v každé třídě
- Vícerozměrné: V této dimenzi pole používá více než dva indexy. Například teploty během dne. (30, 40, 20).
Jak používat Array v Excel VBA
Vytvoříme jednoduchou aplikaci. Tato aplikace naplní list aplikace Excel daty z proměnné pole. V tomto příkladu VBA Array uděláme následující věci.
- Vytvoř nový Microsoft Excelový sešit a uložte jej jako Excelový sešit s podporou maker (*.xlsm)
- Přidejte do sešitu příkazové tlačítko
- Nastavte název a vlastnosti titulku příkazového tlačítka
- Programování VBA, které naplní list aplikace Excel
Proveďte toto cvičení krok za krokem,
Krok 1 – Vytvořte nový sešit
- Otevřená Microsoft vynikat
- Uložte nový sešit jako VBA Arrays.xlsm
Krok 2 – Přidejte příkazové tlačítko
Poznámka: Tato část předpokládá, že jste obeznámeni s procesem vytváření rozhraní v aplikaci Excel. Pokud nejste obeznámeni, přečtěte si tutoriál VBA Excel Form Control & ActiveX Control. Ukáže vám, jak vytvořit rozhraní
- Přidejte na list příkazové tlačítko
- Nastavte vlastnost name na cmdLoadBeverages
- Nastavte vlastnost titulek na Načíst nápoje
Vaše GUI by nyní mělo vypadat následovně
Krok 3 – Uložte soubor
- Klikněte na tlačítko uložit jako
- Vyberte sešit Excel s podporou maker (*.xlsm), jak je znázorněno na obrázku níže
Krok 4 – Napište kód
Nyní napíšeme kód pro naši aplikaci
- Klikněte pravým tlačítkem na tlačítko Načíst nápoje a vyberte zobrazit kód
- Přidejte následující kód do události kliknutí cmdLoadBeverages
Private Sub cmdLoadBeverages_Click() Dim Drinks(1 To 4) As String Drinks(1) = "Pepsi" Drinks(2) = "Coke" Drinks(3) = "Fanta" Drinks(4) = "Juice" Sheet1.Cells(1, 1).Value = "My Favorite Beverages" Sheet1.Cells(2, 1).Value = Drinks(1) Sheet1.Cells(3, 1).Value = Drinks(2) Sheet1.Cells(4, 1).Value = Drinks(3) Sheet1.Cells(5, 1).Value = Drinks(4) End Sub
TADY,
Kód | Akce |
---|---|
Tlumené nápoje (1 až 4) jako řetězec |
|
Nápoje (1) = „Pepsi“ |
|
Sheet1.Cells(1, 1).Value = “Moje oblíbené nápoje.” |
|
List1.Cells(2, 1).Value = Nápoje(1) |
|
Testování naší aplikace
Vyberte kartu Vývojář a ujistěte se, že tlačítko Režim návrhu je „vypnuto“. Indikátor je, že bude mít bílé pozadí a ne barevné (nazelenalé) pozadí. (Viz obrázek níže)
Klikněte na tlačítko Načíst nápoje
Získáte následující výsledky
Stáhněte si Excel obsahující výše uvedený kód
Stáhněte si výše uvedený kód Excel
Shrnutí
- Pole je proměnná schopná uložit více než jednu hodnotu
- Excel VBA podporuje statická a dynamická pole
- Pole usnadňují psaní udržovatelného kódu ve srovnání s deklarováním mnoha proměnných pro data, která spolu logicky souvisí.