Co je pole VBA v Excelu a jak programovat jeden


VBA je součástí sady Microsoft Office řadu let. Přestože nemá úplnou funkčnost a výkon plné aplikace VB, poskytuje VBA uživatelům sady Office flexibilitu pro integraci produktů sady Office a automatizaci práce, kterou v nich děláte.

Jeden z nejúčinnějších nástrojů Ve VBA je k dispozici schopnost načíst celý rozsah dat do jediné proměnné zvané pole. Načtením dat tímto způsobem můžete manipulovat nebo provádět výpočty v tomto rozsahu dat různými způsoby.

Co je to pole VBA? V tomto článku odpovíme na tuto otázku a ukážeme vám, jak používat jednu v svůj vlastní skript VBA.

Co je pole VBA?

Používání VBA pole v Excelu je velmi jednoduché, ale pochopení pojmu pole může být poněkud složité, pokud jste ho nikdy nepoužívali.

Přemýšlejte o poli jako o krabici s částmi uvnitř. Jednorozměrné pole je pole s jednou řadou řezů. Dvourozměrné pole je pole se dvěma řádky sekcí.

Do každé sekce tohoto „pole“ můžete vkládat data v libovolném pořadí.

In_content_1 vše: [300x250] / dfp: [640x360]->

Na začátku skriptu VBA musíte definovat toto „pole“ definováním pole VBA. Chcete-li tedy vytvořit pole, které pojme jednu sadu dat (jednorozměrné pole), napíšete následující řádek.

Dim arrMyArray(1 To 6) As String

Později v programu můžete umístit data do libovolné části tohoto pole odkazem na část uvnitř závorek.

arrMyArray(1) = "Ryan Dube"

Dvojrozměrné pole můžete vytvořit pomocí následujícího řádku.

Dim arrMyArray(1 To 6,1 to 2) As Integer

První číslo představuje řádek a druhé je sloupec. Takže výše uvedené pole by mohlo obsahovat rozsah se 6 řádky a 2 sloupci.

Můžete načíst libovolný prvek tohoto pole pomocí následujících dat.

arrMyArray(1,2) = 3

Toto načte 3 do buňky B1.

Pole může pojmout jakýkoli typ dat jako normální proměnnou, jako jsou řetězce, booleovské hodnoty, celá čísla, plováky a další.

The číslo uvnitř závorky může být také proměnná. Programátoři běžně používají smyčku For počítat ve všech částech pole a načítat datové buňky v tabulce do pole. Uvidíte, jak to provést později v tomto článku.

Jak naprogramovat pole VBA v Excelu

Pojďme se podívat na jednoduchý program, kde budete chtít načíst informace z tabulky do vícerozměrného pole.

Jako příklad se podívejme na tabulku prodeje produktu, kde chcete z tabulky vytáhnout jméno, položku a celkový prodej obchodního zástupce.

Všimněte si, že ve VBA, když odkazujete na řádky nebo sloupce, počítáte řádky a sloupce počínaje od levého horního bodu na 1. Takže sloupec rep je 3, sloupec položky je 4 a celkový sloupec je 7.

Chcete-li načíst tyto tři sloupce do všech 11 řádků, musíte napsat následující skript.

Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i

Všimněte si, že za účelem přeskočení řádku záhlaví musí číslo řádku v prvním Pro vzhled začínat na 2 namísto 1. To znamená, že při načítání řádku musíte odečíst 1 pro hodnotu řádku hodnotu buňky do pole pomocí buněk (i, j) .Hodnota.

Kam vložit skript VBA Array Script

Chcete-li umístit program VBA skript v Excelu, musíte použít Editor VBA. K tomu se dostanete výběrem nabídky Vývojářa výběrem Zobrazit kódv části Ovládací prvky pásu karet.

Pokud v nabídce nevidíte vývojáře, budete muset přidejte to. Chcete-li to provést, vyberte Soubora Možnostia otevřete okno Možnosti aplikace Excel.

Změňte příkazy pro výběr z rozevírací nabídky na Všechny příkazy. Z nabídky vlevo vyberte Vývojářa kliknutím na tlačítko Přidatjej přesuňte do podokna na pravé straně. Zaškrtněte políčko, abyste jej povolili, a dokončete výběr .

Když se otevře okno Editor kódu, ujistěte se, že je v levém podokně vybrán list, ve kterém jsou vaše data. V rozevíracím seznamu vlevo klikněte na Pracovní lista napravo Aktivovat. Tím vytvoříte nový podprogram s názvem Worksheet_Activate ().

Tato funkce se spustí při každém otevření souboru tabulky. Vložte kód do podokna skriptů uvnitř tohoto podprogramu.

Tento skript projde 12 řádky a načte jméno rep ze sloupce 3, položku ze sloupce 4 a celkový prodej ze sloupce 7.

Po dokončení obou smyček bude dvojrozměrné pole arrMyArray obsahuje všechna data zadaná z původního listu.

Manipulace s maticemi v Excelu VBA

Řekněme, že chcete použít 5% daň z obratu na všechny konečné prodejní ceny. a poté zapište všechna data na nový list.

Můžete to provést přidáním další smyčky For for first, s příkazem zapsat výsledky na nový list.

For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k

Tím se „vyloží“ celé pole do Sheet2, další řádek obsahuje celkem vynásobené 5% pro částku daně.

The výsledný list bude vypadat takto.

Jak vidíte, pole VBA v Excelu jsou velmi užitečná a všestranná jako jakýkoli jiný trik Excel.

Příklad výše je pro pole velmi jednoduché použití. Můžete vytvářet mnohem větší pole a provádět třídění, průměrování nebo mnoho dalších funkcí podle dat, která v nich ukládáte.

Pokud chcete získat skutečnou kreativitu, můžete dokonce vytvořit dvě pole obsahující řadu buněk ze dvou různých listů a provádět výpočty mezi prvky každého pole.

Aplikace jsou omezeny pouze vaší fantazií.

MS Excel: VBA makra formuláře - Rozevírací seznam, zaškrtávací pole (2/5)

Související příspěvky:


18.01.2020