Primjeri makronaredbi programa Visual Basic za rad s poljima

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

  1. Otvaranje nove radne knjige i umetanje lista s modulom jezika Visual Basic.

  2. 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 Sub
    
    
  3. Odaberite List1.

  4. Na izborniku Alati pokažite na Makronaredba pa kliknite Makronaredbe.

  5. U dijaloškom okviru Makronaredbe kliknite Sheet_Fill_Array, a zatim Pokreni.

Uzimanje vrijednosti s radnog lista i popunjavanje polja

  1. Upišite vrijednosti na List1 u ćelije A1:A10.

  2. 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 Sub
    
    
  3. Odaberite List1.

  4. Na izborniku Alati pokažite na Makronaredba pa kliknite Makronaredbe.

  5. U dijaloškom okviru Makronaredbe kliknite from_sheet_make_array, a zatim Pokreni.

Za prosljeđivanje i primanje polja

  1. 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 Sub
    
    
  2. Odaberite List1 i označite raspon A1: A10.

  3. Na izborniku Alati pokažite na Makronaredba pa kliknite Makronaredbe.

  4. U dijaloškom okviru Makronaredbe kliknite pass_array, a zatim Pokreni.

Usporedba dvaju polja

  1. 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.

  2. 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 Sub
    
    
  3. Odaberite list 2.

  4. Na izborniku Alati pokažite na Makronaredba, a zatim kliknite Makronaredba.

  5. 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

  1. 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 Sub
    
    
  2. Na izborniku Alati pokažite na Makronaredba pa kliknite Makronaredbe.

  3. U dijaloškom okviru Makronaredba kliknite fill_array, a zatim Pokreni.

NAPOMENA: Promjenom varijable "number_of_elements" odredit ćete veličinu polja.