Što je VBA polje u Excelu i kako ga programirati

VBA je već dugi niz godina dio Microsoft Office paketa. Iako nema potpunu funkcionalnost i snagu potpune VB aplikacije, VBA korisnicima sustava (VBA)Office pruža fleksibilnost za integraciju proizvoda sustava Office i automatizaciju rada koji u njima obavljate.

Jedan od najmoćnijih alata dostupnih u VBA -u je mogućnost učitavanja cijelog niza podataka u jednu varijablu zvanu niz. Učitavanjem podataka na ovaj način, možete manipulirati ili izvoditi izračune na tom rasponu podataka na razne načine.

Dakle, što je VBA niz? U ovom članku ćemo odgovoriti na to pitanje i pokazati vam kako ga koristiti u vlastitoj VBA skripti(your own VBA script) .

Što je VBA niz?

Korištenje VBA polja u Excelu(Excel) vrlo je jednostavno, ali razumijevanje koncepta nizova može biti malo složeno ako ga nikada niste koristili.

Zamislite(Think) niz poput kutije s dijelovima unutar njega. Jednodimenzionalni niz je okvir s jednom linijom sekcija. Dvodimenzionalni niz je okvir s dvije linije sekcija.

Možete staviti podatke u svaki odjeljak ove "kutije" bilo kojim redoslijedom koji želite.

Na početku vaše VBA skripte, morate definirati ovu "kutiju" definirajući svoj VBA niz. Dakle, da biste stvorili niz koji može sadržavati jedan skup podataka (jednodimenzionalni niz), napisali biste sljedeći redak.

Dim arrMyArray(1 To 6) As String

Kasnije u svom programu možete smjestiti podatke u bilo koji dio ovog niza upućivanjem na odjeljak unutar zagrada.

arrMyArray(1) = "Ryan Dube"

Možete stvoriti dvodimenzionalni niz pomoću sljedećeg retka.

Dim arrMyArray(1 To 6,1 to 2) As Integer

Prvi broj predstavlja red, a drugi stupac. Dakle, gornji niz može sadržavati raspon sa 6 redaka i 2 stupca.

Možete učitati bilo koji element ovog niza podacima na sljedeći način.

arrMyArray(1,2) = 3

Ovo će učitati 3 u ćeliju B1.

Niz može sadržavati bilo koju vrstu podataka kao redovnu varijablu, kao što su nizovi, boolean, cijeli brojevi, float i još mnogo toga.

Broj unutar zagrade također može biti varijabla. Programeri obično koriste petlju(Loop) za prebrojavanje svih dijelova niza i učitavanje podatkovnih ćelija u proračunskoj tablici u niz. Vidjet ćete kako to učiniti kasnije u ovom članku.

Kako programirati VBA polje u Excelu

Pogledajmo jednostavan program u koji ćete možda htjeti učitati informacije iz proračunske tablice u višedimenzionalni niz.

Kao primjer, pogledajmo proračunsku tablicu prodaje proizvoda u kojoj želite izvući ime prodajnog predstavnika, stavku i ukupnu prodaju iz proračunske tablice.

Imajte na umu da u VBA kada referencirate retke ili stupce, brojite retke i stupce(rows and columns) počevši od gornjeg lijevog dijela na 1. Dakle, stupac ponavljanja je 3, stupac stavke je 4, a ukupan stupac je 7.

Da biste učitali ova tri stupca u svih 11 redaka, morat ćete napisati sljedeću skriptu.

Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i

Primijetit ćete da kako biste preskočili redak zaglavlja, broj retka u prvom For looku mora početi s 2, a ne s 1. To znači da trebate oduzeti 1 za vrijednost retka polja kada učitavate vrijednost ćelije u niz pomoću Ćelije(Cells) (i, j).Vrijednost.

Gdje umetnuti skriptu VBA polja(Your VBA Array Script)

Da biste programirali VBA skriptu u Excel , trebate koristiti VBA editor. Tome možete pristupiti odabirom izbornika Developer i odabirom View Code u odjeljku Kontrole(Controls) na vrpci.

Ako ne vidite programer(Developer) u izborniku, morat ćete ga dodati. Da biste to učinili, odaberite Datoteka(File) i Opcije(Options) da biste otvorili prozor Mogućnosti programa Excel.

Promijenite naredbe odabira iz padajućeg izbornika u Sve naredbe(All Commands) . Odaberite Developer s lijevog izbornika i odaberite gumb Dodaj(Add) da biste ga premjestili u okno s desne strane. Označite potvrdni okvir da biste ga omogućili i odaberite U redu(OK) za završetak.

Kada se otvori prozor Code Editor , provjerite je li list u kojem se nalaze vaši podaci odabran u lijevom oknu. Odaberite Radni list(Worksheet) na lijevom padajućem izborniku i Aktiviraj(Activate) u desnom. Ovo će stvoriti novi potprogram pod nazivom Worksheet_Activate ().

Ova funkcija će se pokrenuti svaki put kada se otvori datoteka proračunske tablice. Zalijepite kod u okno skripte unutar ovog potprograma.

Ova skripta će raditi kroz 12 redaka i učitat će naziv predstavnika iz stupca 3, stavku iz stupca 4 i ukupnu prodaju iz stupca 7.

Nakon što su obje For petlje gotove, dvodimenzionalni niz arrMyArray sadrži sve podatke koje ste naveli s izvornog lista.

Manipuliranje nizovima u Excel VBA

Recimo da želite primijeniti porez na promet od 5% na sve konačne prodajne cijene, a zatim sve podatke zapisati na novi list.

To možete učiniti dodavanjem druge For petlje nakon prve, s naredbom za pisanje rezultata na novi list.

For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k

To će "istovariti" cijeli niz u Sheet2 , s dodatnim redom koji sadrži ukupni iznos pomnožen s 5% za iznos poreza.

Dobiveni list će izgledati ovako.

Kao što možete vidjeti, VBA nizovi u Excelu(Excel) su iznimno korisni i svestrani kao i svaki drugi trik u Excelu(any other Excel trick)

Gornji primjer je vrlo jednostavna upotreba za niz. Možete kreirati mnogo veće nizove i izvoditi sortiranje, usrednjavanje ili mnoge druge funkcije prema podacima koje pohranjujete u njih.

Ako želite biti stvarno kreativni, možete čak stvoriti dva niza koji sadrže niz ćelija(containing a range of cells) s dva različita lista i izvršiti izračune između elemenata svakog niza.

Prijave su ograničene samo vašom maštom.



About the author

"Ja sam slobodni stručnjak za Windows i Office. Imam više od 10 godina iskustva u radu s ovim alatima i mogu vam pomoći da iz njih izvučete maksimum. Moje vještine uključuju: rad s Microsoft Wordom, Excelom, PowerPointom i Outlookom; stvaranje weba stranice i aplikacije; i pomaganje korisnicima da ostvare svoje poslovne ciljeve."



Related posts