Kako koristiti strukture u VBA? Korisnički definirani tipovi podataka

Sadržaj:

Anonim

Recimo da pokušavate stvoriti sustav upravljanja školom. Ovdje ćete imati različite vrste varijabli poput imena učenika, broja učenika, razreda, itd. Škola također ima učitelje, pa će biti imena učitelja, nastavnički predmet, razredi itd. Slično, bit će i mnogi drugi objekti poput , knjižničar, razredi, načela itd. Sad će imati različite varijable za svaki entitet u školi neuredan posao. Što kažete na stvaranje podatkovnog tipa učenika, učitelja, razreda itd. Koji pohranjuje vrijednosti povezane s njima. Za to možemo koristiti definirane tipove podataka VBA.

U ovom ćemo članku naučiti kako možete stvoriti vlastiti tip podataka u VBA -i. Oni se nazivaju UDT -i VBA -a.

Definiranje korisnički definirane vrste podataka

Za definiranje strukture ili UDT -a u VBA -i koristimo blok Type___End Type. Evo sintakse UDT -a.

Upišite Tname_Of_Data_Type var1 kao tip podatka 'tip podataka može biti bilo što, int, niz ili čak UDT var2 kao tip podataka Var3 () kao tip podataka --- VarN () kao tip podataka Kraj tip 

Dakle, kako bismo definirali prilagođeni tip podataka u VBA -i, počinjemo s Type Keyword. Zatim upisujemo naziv prilagođenog tipa podataka. Uobičajeno je koristiti T prije naziva vrste podataka kako biste mogli razlikovati vba zbirke i UDT -ove.

Tipovi podataka mogu biti bilo što. I cijeli broj, niz, varijanta, još jedan UDT, nizovi, zbirke, bilo što.

Za korištenje vašeg UDT -a u programu deklarirajte njegovu varijablu kao i svaku drugu varijablu.

Sub UseUDT 'Deklariranje varijable korisnički definiranog tipa podataka Dim myVar1 kao Tname_Of_Data_Type Dim myVar2 kao Tname_Of_Data_Type End Sub 

Jednostavan. Sada za korištenje varijabli unutar ovog UDT -a koristimo operator dot. Koristite naziv vrste podataka iza koje slijedi točka i naziv varijable.

Sub UseUDT 'Deklariranje varijable korisnički definiranog tipa podataka Dim myVar1 kao Tname_Of_Data_Type Dim myVar2 kao Tname_Of_Data_Type myVar1.var1 = "Abcd" myVar2.Var2 = "xyvz" End Sub 

Dosta je teorije, idemo na primjer da vidimo kako to funkcionira.

Napravite učeničku varijablu koja pohranjuje informacije povezane sa učenikom

Stoga imamo zadatak stvoriti korisnički definiranu vrstu podataka koja pohranjuje podatke vezane za studente.

Učenik ima ime, prezime, broj rolne, datum rođenja, razred, odjeljak, predmete.

Pa stvorimo ga.

'Izrađen javni tip podataka učenika Javni tip Tstudent fName As String' Za ime lName As String 'Za prezime rNo As Integer' Za broj rola clss Kao niz 'Za odjeljak razreda Kao niz' Za naziv odjeljka subjekata () Kao niz ' Za predmete završetka studenta 'Koristite ovaj tip studenta u potprogramu Pod StudentsInfo ()' Stvaranje i inicijalizacija varijable tipa učenika Dim student1 Kao Tstudent student1.fName = "Manish" student1.lName = "Singh" student1.rNo = 12334 student1.clss = 10 student1.section = "A" ReDim student1.subjects (2) student1.subjects (0) = "physics" student1.subjects (1) = "Math" 'Ispis pojedinosti učenika. Debug.Print (student1.fName) Debug.Print (student1.lName) Debug.Print (student1.rNo) Debug.Print (student1.clss) Debug.Print (student1.section) Debug.Print (student1.subjects (0)) ) Debug.Print (student1.subjects (1)) End Sub 

Kada pokrenete gornju podlogu, ispisat će se rezultat kao što je prikazano u nastavku:

Manijski

Singh

12334

10

A

fizika

Matematika

Stvaranje niza UDT -ova i pristupa elementima

Slično tome, možete stvoriti koliko god varijabli tipa Tstudent trebate. Možete čak i stvoriti niz Tstudent tipa kao i bilo koji drugi tip podataka.

Javni tip Tstudent fName As String 'For First Name lName As String' For Prezime rNo As Integer 'For Roll Number clss As string' For Class section As String 'Za Subjekte naziva odjeljka () As String' For Subjects of student End Type ' Stvaranje niza Tstudents tipa Sub SchoolInfo () Dim schoolName As String Dim students () As Tstudent schoolName = "Viša škola" ReDim učenici (10) Za i = 0 Za 9 učenika (i) .fName = "name" & Str ( i + 1) studenti (i) .rNo = i + 1 Dalje i Debug.Print ("Naziv: Roll No") For i = 0 To 9 Debug.Print (students (i) .fName & ":" & students ( i) .rNo) Dalje i Završi podm 

Kada pokrenete ovaj kôd, on će se ispisati u neposrednom prozoru.

Naziv: Rola br

ime 1: 1

ime 2: 2

ime 3: 3

ime 4: 4

ime 5: 5

ime 6: 6

ime 7: 7

ime 8: 8

ime 9: 9

ime 10: 10

U gornjem kodu, prvo definirana UDT struktura prije i pod (kasnije ću objasniti zašto). Upravo smo stvorili niz pomoću ključne riječi dim, kao što radimo za bilo koju varijablu u VBA -i.

Zatim smo koristili Redim za definiranje veličine niza. Nakon toga koristimo for petlju za inicijalizaciju niza.

Za pristup elementima strukture koristimo drugu for petlju. To je to.

Zašto smo proglasili UDT na vrhu modula?

Ako deklariramo UDT prvo u modulu, izvan bilo koje podrutine ili funkcije, on je dostupan svim modulima u radnoj knjizi. To znači da ako imate stotinu pretplatnika i funkcija u modulu, svi oni mogu u svom tijelu proglasiti varijable tipa Student.

Ako UDT nije privatan, bit će dostupan svim modulima u radnoj knjizi. Ako želite da struktura (UDT) bude dostupna samo modulu koji ga sadrži, proglasite je privatnom.

Privatni tip Tstudent fName As String lName As String rNo As Integer clss As Integer section As String subjects () As String End Type 

Ne možete imati UDT na proceduralnoj razini. To znači da unutar potprograma ili funkcije ne možete definirati korisnički definiranu vrstu podataka.

Ugniježđene korisnički definirane vrste

Recimo da ste UDT zvali auto. Automobil ima svoje elemente. Slično imate UDT nazvan bicikl koji može imati svoja svojstva.

Recimo da vam je potreban tip podataka koji se zove vozilo. Vozilo može imati elemente i automobil i bicikl. Možemo li to učiniti? Da, možemo to učiniti. Pogledajte donji kod

Privatni tip Tcar sjedala Kao cijeli broj kao Booleov tip Kao boja niza Kao proizvođač niza Kao niz dop kao datum rc_no Kao tip kraja niza Privatni tip Sjedala za bicikl Kao cijeli broj Tip Kao boja niza Kao proizvođač niza Kao niz niza Do datuma rc_no Kao tip kraja niza Privatno Upišite Broj vozila_Vozila Kao Integer bicikl Kao Tbike Automobil Kao Tcar Kraj Tip PodvoziloVarifikacija () Dim myVehicles As Tvehicle myVehicles.number_of_Vehicle = 2 myVehicles.bike.seats = 1 myVehicles.bike.typ = "Racing 4" myVehicles. "myVehicles.car.ac = True Debug.Print myVehicles.number_of_Vehicle Debug.Print myVehicles.bike.typ Debug.Print myVehicles.car.ac End Sub 

Ovdje smo definirali tri korisnički definirana tipa podataka. Prvi je Tcar koji sadrži neke podatke vezane za automobile. Drugo je bicikl, on također sadrži neke podatke o biciklu.

Treći UDT je ​​Tvehicle. Sadrži jednu varijablu za pohranu broja vozila i dvije varijable tipa Tcar i Tbike.

Vozilo privatnog tipa

broj_Vozila kao cijeli broj

bicikl Kao Tbike

automobil Kao Tcar

Vrsta kraja

Za pristup varijablama Tcar i Tbike možemo koristiti tip podataka Tvehicle. U podmornici smo definirali samo jednu varijablu tipa vozila kao myVehicles. Kad stvorimo ovu varijablu, VBA stvara i varijable Tcar -a i Tbike -a.

Za inicijalizaciju i pristup varijablama Tcar i Tcar možemo koristiti varijablu myVehicle. Kao što možete vidjeti u kodu.

mojaVozila.broj_Vozila = 2

myVehicles.bike.sjedala = 1

myVehicles.bike.typ = "Utrke"

myVehicles.car.seats = "4"

myVehicles.car.ac = Istina

Kada pokrenemo podmornicu, rezultat je ovakav.

Ova značajka doista povećava snagu programiranja VBA eksponencijalno. Svoju vrstu podataka možete strukturirati poput entiteta iz stvarnog svijeta. Možete stvoriti odnose među vrstama podataka koji mogu biti korisni u velikom projektu.

Pa da, dečki, ovako možete stvoriti i koristiti korisnički definiranu vrstu podataka ili strukturu u VBA -i. Nadam se da sam to uspio objasniti. Ako imate pitanja u vezi s ovim člankom ili bilo kojim drugim pitanjem vezanim uz VBA, pitajte me u donjem odjeljku komentara. Bit će mi jako drago čuti vas.

VBA varijable u Excelu| VBA znači Visual Basic for Applications. To je programski jezik iz Microsofta. Koristi se s aplikacijama Microsoft Office kao što su MSExcel, MS-Word i MS-Access, dok su VBA varijable određene ključne riječi.

Excel VBA varijabilni opseg| U svim programskim jezicima imamo specifikatore pristupa varijablama koji definiraju odakle se može pristupiti definiranoj varijabli. Excel VBA nije iznimka. VBA također ima specifikatore opsega.

Argumenti ByRefa i ByVala | Kada se argument prenese kao ByRef argument na drugu pod -funkciju ili funkciju, šalje se referenca stvarne varijable. Sve promjene napravljene u kopiji varijable odrazit će se u izvornom argumentu.

Brisanje listova bez upita za potvrdu pomoću VBA u programu Microsoft Excel | Budući da brišete listove pomoću VBA -a, znate što radite. Htjeli biste Excel reći da ne prikazuje ovo upozorenje i izbrisati prokleti list.

Dodajte i spremite novu radnu knjigu pomoću VBA -a u programu Microsoft Excel 2016| U ovom smo kodu najprije stvorili referencu na objekt radne knjige. Zatim smo ga inicijalizirali novim objektom radne knjige. Prednost ovog pristupa je u tome što s ovom novom radnom knjigom možete lako raditi. Kao spremanje, zatvaranje, brisanje itd

Prikažite poruku na statusnoj traci programa Excel VBA| Statusna traka u Excelu može se koristiti kao monitor koda. Kad je vaš VBA kôd dugačak i obavite nekoliko zadataka pomoću VBA -a, često onemogućujete ažuriranje zaslona kako ne biste vidjeli kako zaslon treperi.

Isključite poruke upozorenja pomoću VBA u programu Microsoft Excel 2016| Ovaj kôd ne samo da onemogućuje VBA upozorenja, već i povećava vremensku učinkovitost koda. Pogledajmo kako.

Popularni članci:

50 Excel prečaca za povećanje vaše produktivnosti | Budite brži u izvršavanju svojih zadataka. Ovih 50 prečaca učinit će da radite još brže na Excelu.

Funkcija VLOOKUP u Excelu | Ovo je jedna od najčešće korištenih i popularnih funkcija programa Excel koja se koristi za traženje vrijednosti iz različitih raspona i listova.

COUNTIF u Excelu 2016 | Brojte vrijednosti s uvjetima pomoću ove nevjerojatne funkcije. Ne morate filtrirati svoje podatke da biste brojali određene vrijednosti. Funkcija Countif bitna je za pripremu vaše nadzorne ploče.

Kako koristiti funkciju SUMIF u Excelu | Ovo je još jedna bitna funkcija nadzorne ploče. To vam pomaže pri zbrajanju vrijednosti u posebnim uvjetima.