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 daje primjere programiranja samo za ilustraciju, bez jamstva, bilo izričitog ili prešutnog. To uključuje, bez ograničenja, implicitna jamstva utrživosti ili prikladnosti za određenu svrhu. U članku se podrazumijeva da ste upoznati s programskim jezikom koji se pokazuje te s alatima koji se koriste za stvaranje i ispravljanje pogrešaka procedura. Microsoftovi inženjeri za podršku mogu vam pomoći objasniti funkcionalnost određene procedure, no neće mijenjati te primjere radi pružanja dodatne funkcionalnosti ili konstruirati procedure koji zadovoljavaju vaše specifične zahtjeve. NAPOMENA: u postupcima programa Visual Basic for Applications riječi nakon apostrofa (') su komentari.
Ispunjavanje polja i njegovo kopiranje na radni list
Otvaranje nove radne knjige i umetanje lista s modulom jezika Visual Basic.
Na list modula unesite 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 SubOdaberite List1.
Na izborniku Alati pokažite na Makronaredba pa kliknite Makronaredbe.
U dijaloškom okviru Makronaredbe kliknite Sheet_Fill_Array, a zatim Pokreni.
Uzimanje vrijednosti s radnog lista i popunjavanje polja
Upišite vrijednosti na List1 u ćelije A1:A10.
Na list 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 SubOdaberite List1.
Na izborniku Alati pokažite na Makronaredba pa kliknite Makronaredbe.
U dijaloškom okviru Makronaredbe kliknite from_sheet_make_array, a zatim Pokreni.
Za prosljeđivanje i primanje polja
Na list 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 SubOdaberite List1 i označite raspon A1: A10.
Na izborniku Alati pokažite na Makronaredba pa kliknite Makronaredbe.
U dijaloškom okviru Makronaredbe kliknite pass_array, a zatim Pokreni.
Usporedba dvaju polja
Stvorite dva imenovana raspona na Listu1. Navedite naziv jednog raspona1, a drugog raspona2.
Na primjer, označite raspon ćelija A1:A10 i dodijelite mu naziv raspon1; Označite raspon ćelija B1:B10 i dodijelite mu naziv raspon2.
Na list modula unesite 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 SubOdaberite list 2.
Na izborniku Alati pokažite na Makronaredba, a zatim kliknite Makronaredba.
U dijaloškom okviru Makronaredbe kliknite compare_two_array, a zatim Pokreni.
Za svaku usporedbu prikazat će se jedan okvir s porukom.
Ispunjavanje dinamičkog polja
Na list 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 SubNa izborniku Alati pokažite na Makronaredba pa kliknite Makronaredbe.
U dijaloškom okviru Makronaredba kliknite fill_array, a zatim Pokreni.
NAPOMENA: Promjenom varijable "number_of_elements" odredit ćete veličinu polja.