Súhrn
Tento článok obsahuje vzorové postupy jazyka Microsoft Visual Basic for Applications, ktoré môžete použiť na prácu s niekoľkými typmi polí.
Ďalšie informácie
Spoločnosť Microsoft poskytuje príklady programovania len na ilustráciu bez záruky vyjadrenej alebo implicitnej. To zahŕňa, ale nie je obmedzená na implicitné záruky obchodovateľnosti alebo vhodnosti na konkrétny účel. V tomto článku sa predpokladá, že poznáte predvedený programovací jazyk a nástroje, ktoré sa používajú na vytváranie a ladenie postupov. Technickí inžinieri spoločnosti Microsoft môžu pomôcť vysvetliť funkčnosť konkrétneho postupu, ale tieto príklady neupravia tak, aby poskytovali ďalšie funkcie alebo vytvárali postupy na splnenie vašich konkrétnych požiadaviek. POZNÁMKA: V procedúrach jazyka Visual Basic for Applications sú slová za apostrofom (') komentármi.
Vyplnenie poľa a jeho následné skopírovanie do hárka
-
Otvorte nový zošit a vložte hárok modulu jazyka Visual Basic.
-
Do hárka modulu zadajte nasledujúci 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 položku Hárok1.
-
V ponuke Nástroje ukážte na položku Makro a potom kliknite na položku Makrá.
-
V dialógovom okne Makro kliknite na položku Sheet_Fill_Array a potom na položku Spustiť.
Prevzatie hodnôt z hárka a vyplnenie poľa
-
Zadajte hodnoty do hárka Hárok1 do buniek A1:A10.
-
Do hárka modulu jazyka Visual Basic zadajte nasledujúci 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 položku Hárok1.
-
V ponuke Nástroje ukážte na položku Makro a potom kliknite na položku Makrá.
-
V dialógovom okne Makro kliknite na položku from_sheet_make_array a potom na položku Spustiť.
Odovzdanie a prijatie poľa
-
V hárku modulu zadajte nasledujúci 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 hárok1 a zvýraznite rozsah A1:A10.
-
V ponuke Nástroje ukážte na položku Makro a potom kliknite na položku Makrá.
-
V dialógovom okne Makro kliknite na položku pass_array a potom na položku Spustiť.
Porovnanie dvoch polí
-
Vytvorte dva pomenované rozsahy v hárku Hárok1. Pomenujte jeden rozsah1 a druhý rozsah2.
Zvýraznite napríklad rozsah buniek A1:A10 a pomenujte ho rozsah1. zvýraznite rozsah buniek B1:B10 a pomenujte ho rozsah2. -
Do hárka modulu zadajte nasledujúci 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 hárok2.
-
V ponuke Nástroje ukážte na položku Makro a potom kliknite na položku Makro.
-
V dialógovom okne Makro kliknite na položku compare_two_array a potom na položku Spustiť.
Zobrazí sa jedno okno hlásenia pre každé porovnanie.
Vyplnenie dynamického poľa
-
V hárku modulu zadajte nasledujúci 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 ponuke Nástroje ukážte na položku Makro a potom kliknite na položku Makrá.
-
V dialógovom okne Makro kliknite na položku fill_array a potom na položku Spustiť.
POZNÁMKA: Zmena premennej "number_of_elements" určí veľkosť poľa.