Excel VBA nizovi: vrste i kako ih koristiti s primjerom

⚡ Pametni sažetak

Excel VBA nizovi pohranjuju skupinu povezanih vrijednosti istog tipa podataka pod jednim imenom, kojima se pristupa putem indeksa. Ova stranica objašnjava statičke i dinamičke nizove, jednodimenzionalne, dvodimenzionalne i višedimenzionalne nizove, sintaksu deklaracije i obrađeni primjer punjenja napitaka.

  • ???? Koncept niza: Jedna imenovana memorijska lokacija koja sadrži više vrijednosti istog tipa podataka, odvojene indeksom.
  • 🎯 Prednosti: Nizovi grupiraju povezane podatke, smanjuju broj varijabli i ubrzavaju dohvaćanje i sortiranje podataka.
  • 📌 Statički niz: Deklarisano s fiksnom veličinom, na primjer Dim ArrayMonth(12) As String, kada je poznat broj elemenata.
  • 🔄 Dinamički niz: Deklarisano prazno pomoću Dim ArrayMonth() i dimenzionirano kasnije pomoću ReDim kada je broj elemenata nepoznat.
  • 📐 Dimenzije: Niz koristi jedan, dva ili više indeksa za modeliranje pojedinačnih popisa, tablica ili višerazinskih podataka.
  • 🧪 Obrađeni primjer: Naredbeni gumb učitava četiri naziva pića iz polja u ćelije radnog lista pomoću Sheet1.Cells.

Excel VBA polja

Što je VBA polje?

Niz je definiran kao memorijska lokacija koja može pohraniti više od jedne vrijednosti. Sve vrijednosti moraju biti iste vrste podataka. Recimo da želite pohraniti popis svojih omiljenih pića u jednu varijablu, za to možete koristiti VBA polje.

Korištenjem niza, možete se pozivati ​​na povezane vrijednosti pod istim imenom. Možete koristiti indeks ili indeks da ih razlikujete. Pojedinačne vrijednosti nazivaju se elementima Excel VBA polja. Oni su susjedni od indeksa 0 do najviše vrijednosti indeksa.

Ovaj vodič pretpostavlja da koristite Microsoft nadmašiti verzija 2013. Znanje se i dalje odnosi na druge verzije Microsoft Excel također.

Koje su prednosti nizova?

Prije pisanja koda za nizove, korisno je razumjeti zašto se isplati koristiti nizove. Slijede neke od prednosti koje nudi VBA funkcija niza.

  1. Grupirajte logički povezane podatke zajedno – recimo da želite pohraniti popis učenika. Možete koristiti jednu varijablu niza koja ima odvojene lokacije za kategorije učenika, npr. vrtić, osnovna, srednja škola, srednja škola itd.
  2. Nizovi olakšavaju pisanje koda koji se može održavati. Za iste logički povezane podatke, omogućuje definiranje jedne varijable, umjesto definiranja više od jedne varijable.
  3. Bolja izvedba – nakon što je niz definiran, brže je dohvaćati, sortirati i mijenjati podatke.

Vrste nizova u VBA

VBA podržava dvije vrste nizova, naime;

  • statički – Ove vrste nizova imaju fiksni unaprijed određen broj elemenata koji se mogu pohraniti. Ne može se promijeniti veličina tipa podataka statičkog polja. Ovo je korisno kada želite raditi s poznatim entitetima kao što su broj dana u tjednu, spol itd.Na primjer: Dim ArrayMonth(12) Kao niz
  • Dinamičan – Ove vrste nizova nemaju fiksni unaprijed određen broj elemenata koji se mogu pohraniti. Ovo je korisno kada radite s entitetima čiji broj ne možete unaprijed odrediti.Na primjer: Dim ArrayMonth() kao varijanta

Nakon što znate koji tip odgovara vašim podacima, sljedeći korak je sintaksa deklaracije za svaki od njih.

Sintaksa za deklariranje nizova

Statički nizovi

Sintaksa za deklariranje STATIČKI nizova je kako slijedi:

Dim arrayName (n) as datatype

OVDJE,

Code Akcijski
Dim arrayName (n) tip podataka
  1. Deklarira varijablu polja pod nazivom arrayName s veličinom n i tipom podataka. Veličina se odnosi na broj elemenata koje niz može pohraniti.

Dinamički nizovi

Sintaksa za deklariranje DINAMIČAN nizova je kako slijedi:

Dim arrayName() as datatype
ReDim arrayName(4)

OVDJE,

Code Akcijski
Vrsta podataka Dim arrayName ().
  1. Deklariše varijablu niza pod nazivom arrayName bez navođenja broja elemenata
ReDim arrayName(4)
  1. Određuje veličinu polja nakon što je polje definirano.

Dimenzije polja

Niz može biti jednodimenzionalan, dvodimenzionalan ili višedimenzionalan.

  • Jedna dimenzija: U ovoj dimenziji niz koristi samo jedan indeks. Na primjer, određeni broj ljudi svake dobi.
  • Dvije dimenzije: U ovoj dimenziji niz koristi dva indeksa. Na primjer, broj učenika u svakom razredu. Zahtijeva broj razreda i broj učenika u svakom razredu
  • Više dimenzija: U ovoj dimenziji niz koristi više od dva indeksa. Na primjer, temperature tijekom dana. (30, 40, 20).

Kako koristiti niz u programu Excel VBA

Nakon što smo obradili teoriju, možemo primijeniti niz u stvarnoj radnoj knjizi. Izradit ćemo jednostavnu aplikaciju. Ova aplikacija popunjava Excel tablicu podacima iz varijable niza. U ovom VBA primjeru niza, učinit ćemo sljedeće.

  • Napravite novu Microsoft radnu knjigu programa Excel i spremite je kao radnu knjigu programa Excel s omogućenim makronaredbama (*.xlsm)
  • Dodajte naredbeni gumb u radnu knjigu
  • Postavite svojstva naziva i opisa naredbenog gumba
  • Programiranje VBA koji popunjava Excel list

Izvedite ovu vježbu korak po korak,

Korak 1 – Stvorite novu radnu knjigu

  1. Otvoren Microsoft nadmašiti
  2. Spremite novu radnu knjigu kao VBA Arrays.xlsm

Korak 2 – Dodajte naredbeni gumb

Bilješka: Ovaj odjeljak pretpostavlja da ste upoznati s procesom stvaranja sučelja u excelu. Ako niste upoznati, pročitajte tutorial VBA Excel kontrola obrasca i ActiveX kontrola. Pokazat će vam kako izraditi sučelje

  1. Dodajte naredbeni gumb na list

Koristite niz u programu Excel VBA

  1. Postavite svojstvo name na cmdLoadBeverages
  2. Postavite svojstvo naslova na Učitavanje pića

Vaše GUI bi sada trebalo biti kako slijedi

Koristite niz u programu Excel VBA

Korak 3 – Spremite datoteku

  1. Kliknite na gumb Spremi kao
  2. Odaberite Excel radnu knjigu s omogućenim makronaredbama (*.xlsm) kao što je prikazano na slici ispod

Koristite niz u programu Excel VBA

Korak 4 – Napišite kod

Sada ćemo napisati kod za našu aplikaciju

  1. Desnom tipkom miša kliknite gumb Učitaj pića i odaberite prikaz koda
  2. Dodajte sljedeći kod u događaj klika za cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()
    Dim Drinks(1 To 4) As String

    Drinks(1) = "Pepsi"
    Drinks(2) = "Coke"
    Drinks(3) = "Fanta"
    Drinks(4) = "Juice"

    Sheet1.Cells(1, 1).Value = "My Favorite Beverages"
    Sheet1.Cells(2, 1).Value = Drinks(1)
    Sheet1.Cells(3, 1).Value = Drinks(2)
    Sheet1.Cells(4, 1).Value = Drinks(3)
    Sheet1.Cells(5, 1).Value = Drinks(4)
End Sub

OVDJE,

Code Akcijski
Dim Drinks (1 do 4) kao niz
  • Deklarira niz varijabli pod nazivom Drinks. Indeks prvog niza je 1, a indeks posljednjeg niza je 4.
Piće(1) = “Pepsi”
  • Dodjeljuje vrijednost Pepsi prvom elementu niza. Drugi sličan kod čini isto za ostale elemente u nizu.
Sheet1.Cells(1, 1).Value = “Moja omiljena pića”
  • Zapisuje vrijednost My Favorite Beverages u adresu ćelije A1. Sheet1 upućuje na list, a Cells(1,1) upućuje na red broj 1 i stupac 1 (B)
Sheet1.Cells(2, 1).Value = Drinks(1)
  • Zapisuje vrijednost elementa niza s indeksom 1 u red broj dva stupca 1

Testiranje naše aplikacije

Nakon što je kod postavljen, posljednji korak je pokretanje gumba i potvrda da niz ispunjava list. Odaberite karticu za razvojne programere i provjerite je li gumb Način dizajna "isključen". Indikator je da će imati bijelu pozadinu, a ne obojenu (zelenkastu). (Pogledajte sliku ispod)

Testiranje aplikacije u Excelu VBA

Pritisnite gumb Učitaj pića

Dobit ćete sljedeće rezultate

Testiranje aplikacije u Excelu VBA

Preuzmite Excel koji sadrži gornji kod

Preuzmite gornji Excel Code

Pitanja i odgovori

Statički niz ima fiksnu veličinu postavljenu prilikom deklaracije, kao što je Dim Arr(12). Dinamički niz se deklarira praznim pomoću Dim Arr() i kasnije mu se mijenja veličina pomoću ReDim kada broj elemenata nije unaprijed poznat.

ReDim postavlja ili mijenja veličinu dinamičkog polja nakon što je deklarirano. Dodavanje ključne riječi Preserve, kao u ReDim Preserve Arr(10), zadržava postojeće vrijednosti prilikom promjene veličine; bez Preserve, sve pohranjene vrijednosti se brišu.

Koristite funkcije LBound i UBound. LBound vraća najniži indeks, a UBound vraća najviši indeks. Broj elemenata jednak je UBound(Arr) minus LBound(Arr) plus jedan, što funkcionira i za statičke i za dinamičke nizove.

Da. AI asistenti poput Copilota generiraju deklaracije nizova i petlje iz običnog zahtjeva, na primjer učitavaju deset naziva proizvoda u stupac. Programer lijepi kod u editor i testira ga na kopiji radne knjige.

Da. AI asistenti čitaju grešku "Subscript out of range" i kod, zatim pokazuju na indeks koji prelazi granice polja i predlažu ispravak, poput prilagodbe veličine ReDima ili brojača petlji. Programer primjenjuje i ponovno testira.

Sažmite ovu objavu uz: