Shrnutí
Tento článek obsahuje ukázkové postupy jazyka Microsoft Visual Basic for Applications, které můžete použít k práci s několika typy polí.
Další informace
Microsoft poskytuje programovací příklady pouze pro ilustraci, bez záruky vyjádřené nebo předpokládané. To zahrnuje mimo jiné předpokládané záruky prodejnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je demonstrován, a s nástroji, které se používají k vytváření a ladění procedur. Technici podpory Microsoftu vám můžou pomoct vysvětlit funkčnost konkrétní procedury, ale tyto příklady nebudou upravovat tak, aby poskytovaly přidané funkce nebo sestavují postupy tak, aby splňovaly vaše konkrétní požadavky. POZNÁMKA: V procedurách jazyka Visual Basic for Applications jsou slova za apostrofem (') komentáře.
Vyplnění pole a jeho následné zkopírování do listu
-
Otevřete nový sešit a vložte list modulu jazyka Visual Basic.
-
Na listu modulů zadejte následující kód.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Vyberte List1.
-
V nabídce Nástroje přejděte na Makro a potom klikněte na Makra.
-
V dialogovém okně Makro klikněte na Sheet_Fill_Array a potom klikněte na Spustit.
Převzetí hodnot z listu a vyplnění pole
-
Zadejte hodnoty na list List1 do buněk A1:A10.
-
Na listu modulů jazyka Visual Basic zadejte následující kód:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Vyberte List1.
-
V nabídce Nástroje přejděte na Makro a potom klikněte na Makra.
-
V dialogovém okně Makro klikněte na from_sheet_make_array a potom klikněte na Spustit.
Předání a příjem pole
-
Na listu modulů zadejte následující kód:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Vyberte List1 a zvýrazněte oblast A1:A10.
-
V nabídce Nástroje přejděte na Makro a potom klikněte na Makra.
-
V dialogovém okně Makro klikněte na pass_array a potom klikněte na Spustit.
Porovnání dvou polí
-
Vytvořte dvě pojmenované oblasti na listu List1. Pojmenujte jednu oblast1 a druhou oblast2.
Například zvýrazněte oblast buněk A1:A10 a pojmenujte ji oblast1; zvýrazněte oblast buněk B1:B10 a pojmenujte ji oblast2. -
Na listu modulů zadejte následující kód.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Vyberte List2.
-
V nabídce Nástroje přejděte na Makro a potom klikněte na Makro.
-
V dialogovém okně Makro klikněte na compare_two_array a potom klikněte na Spustit.
Pro každé porovnání se zobrazí jedno okno se zprávou.
Vyplnění dynamického pole
-
Na listu modulů zadejte následující kód:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
V nabídce Nástroje přejděte na Makro a potom klikněte na Makra.
-
V dialogovém okně Makro klikněte na fill_array a potom klikněte na Spustit.
POZNÁMKA: Změna proměnné "number_of_elements" určí velikost pole.