Sažetak
Ovaj članak sadrži ogledne postupke za Microsoft Visual Basic for Applications koje možete koristiti za rad s nekoliko vrsta polja.
Dodatne informacije
Microsoft nudi primjere programiranja samo za ilustraciju, bez jamstva izraženog ili impliciranog. To uključuje, ali nije ograničeno na, implicitna jamstva prikladnosti ili prikladnosti za određenu svrhu. U ovom se članku pretpostavlja da ste upoznati s programskim jezikom koji se prikazuje i alatima koji se koriste za stvaranje i ispravljanje pogrešaka. Inženjeri Microsoftove podrške mogu objasniti funkcionalnost određenog postupka, ali neće izmijeniti te primjere da bi pružili dodatne funkcije ili konstruirali postupke kako bi ispunili vaše specifične zahtjeve. NAPOMENA: u postupcima jezika Visual Basic for Applications riječi nakon apostrofa (') su komentari.
Ispunjavanje polja i kopiranje na radni list
-
Otvorite novu radnu knjigu i umetnite list modula programa Visual Basic.
-
Na list modula upišite sljedeći kod.
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
-
Odaberite List1.
-
Na izborniku Alati pokažite na Makronaredba, a zatim kliknite Makronaredbe.
-
U dijaloškom okviru Makronaredba kliknite Sheet_Fill_Array, a zatim Pokreni.
Preuzimanje vrijednosti s radnog lista i ispunjavanje polja
-
Upišite vrijednosti na listu List1 u ćelije A1:A10.
-
Na listu modula programa Visual Basic upišite sljedeći kod:
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
-
Odaberite List1.
-
Na izborniku Alati pokažite na Makronaredba, a zatim kliknite Makronaredbe.
-
U dijaloškom okviru Makronaredba kliknite from_sheet_make_array, a zatim Pokreni.
Prolaz i primanje polja
-
Na listu modula upišite sljedeći kod:
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
-
Odaberite List1 i istaknite raspon A1:A10.
-
Na izborniku Alati pokažite na Makronaredba, a zatim kliknite Makronaredbe.
-
U dijaloškom okviru Makronaredba kliknite pass_array, a zatim Pokreni.
Usporedba dva polja
-
Stvorite dva imenovana raspona na listu List1. Dodijelite naziv jednom rasponu1 i drugom rasponu2.
Na primjer, istaknite raspon ćelija A1:A10 i dodijelite mu naziv raspon1; označite raspon ćelija B1:B10 i dodijelite mu naziv raspon2. -
Na list modula upišite sljedeći kod.
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
-
Odaberite List2.
-
Na izborniku Alati pokažite na Makronaredba, a zatim kliknite Makronaredba.
-
U dijaloškom okviru Makronaredba kliknite compare_two_array, a zatim Pokreni.
Za svaku ćete usporedbu vidjeti jedan okvir s porukom.
Ispunjavanje dinamičkog polja
-
Na listu modula upišite sljedeći kod:
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
-
Na izborniku Alati pokažite na Makronaredba, a zatim kliknite Makronaredbe.
-
U dijaloškom okviru Makronaredba kliknite fill_array, a zatim Pokreni.
NAPOMENA: promjenom varijable "number_of_elements" odredit će se veličina polja.