Kokkuvõte
See artikkel sisaldab Microsoft Visual Basic for Applicationsi näidistoiminguid, mida saate kasutada mitme massiivitüübiga töötamiseks.
Lisateave
Microsoft pakub programmeerimise näiteid ainult illustreerimiseks, ilma et garantii oleks väljendatud või kaudselt. See hõlmab kaubastatavuse või kindlaks otstarbeks sobivuse kaudseid garantiisid, kuid mitte ainult. Selles artiklis eeldatakse, et olete tuttav kuvatava programmeerimiskeelega ning tööriistadega, mida kasutatakse protseduuride loomiseks ja silumiseks. Microsofti tugiteenuste insenerid saavad aidata selgitada konkreetse protseduuri funktsionaalsust, kuid nad ei muuda neid näiteid selleks, et pakkuda teie vajadustele vastavaid lisafunktsioone või koostada protseduure. MÄRKUS. Rakenduse Visual Basic for Applications protseduurides on ülakomale (') järgnevad sõnad kommentaarid.
Massiivi täitmine ja seejärel töölehele kopeerimine
-
Avage uus töövihik ja lisage Visual Basicu moodulileht.
-
Tippige moodulilehele järgmine kood.
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
-
Valige Leht1.
-
Osutage menüü Tööriistad käsule Makro ja seejärel klõpsake käsku Makrod.
-
Klõpsake dialoogiboksis Makro nuppu Sheet_Fill_Array ja seejärel käsku Käivita.
Väärtuste võtmine töölehelt ja Massiivi täitmine
-
Tippige väärtused lehele Leht1 lahtritesse A1:A10.
-
Tippige Visual Basicu moodulilehele järgmine kood:
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
-
Valige Leht1.
-
Osutage menüü Tööriistad käsule Makro ja seejärel klõpsake käsku Makrod.
-
Klõpsake dialoogiboksis Makro nuppu from_sheet_make_array ja seejärel käsku Käivita.
Massiivi edastamine ja vastuvõtmine
-
Tippige moodulilehele järgmine kood:
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
-
Valige Leht1 ja tõstke vahemik A1:A10 esile.
-
Osutage menüü Tööriistad käsule Makro ja seejärel klõpsake käsku Makrod.
-
Klõpsake dialoogiboksis Makro nuppu pass_array ja seejärel käsku Käivita.
Kahe massiivi võrdlemine
-
Looge lehel Leht1 kaks nimega vahemikku. Nimetage üks vahemik1 ja teine vahemik2.
Näiteks tõstke lahtrivahemik A1:A10 esile ja pange sellele nimi vahemik 1; tõstab lahtrivahemiku B1:B10 esile ja nimetab selle vahemikuks 2. -
Tippige moodulilehele järgmine kood.
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
-
Valige Leht2.
-
Osutage menüü Tööriistad käsule Makro ja seejärel klõpsake käsku Makro.
-
Klõpsake dialoogiboksis Makro nuppu compare_two_array ja seejärel käsku Käivita.
Iga võrdluse kohta kuvatakse üks teateboks.
Dünaamilise massiivi täitmine
-
Tippige moodulilehele järgmine kood:
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
-
Osutage menüü Tööriistad käsule Makro ja seejärel klõpsake käsku Makrod.
-
Klõpsake dialoogiboksis Makro nuppu fill_array ja seejärel käsku Käivita.
MÄRKUS. Muutuja "number_of_elements" muutmine määrab massiivi suuruse.