Kako uporabljati strukture v VBA? Uporabniško določeni tipi podatkov

Kazalo:

Anonim

Recimo, da poskušate ustvariti sistem vodenja šole. Tu boste imeli različne vrste spremenljivk, kot so ime učencev, številka učencev, razred itd. V šoli so tudi učitelji, zato bodo imena učiteljev, predmet učitelja, razredi itd. Podobno bo veliko drugih predmetov, kot so , knjižničarka, razredi, načelo itd. Zdaj bo imeti različne spremenljivke za vsako entiteto v šoli grdo delo. Kaj pa ustvarjanje podatkovnega tipa študent, učitelj, razredi itd., Ki shranjuje z njimi povezane vrednosti. Za to lahko uporabimo definirane vrste podatkov VBA.

V tem članku se bomo naučili, kako lahko ustvarite svoj podatkovni tip v VBA. Imenujejo se UDT VBA.

Določanje uporabniškega tipa podatkov

Za definiranje strukture ali UDT -jev v VBA uporabimo blok Type___End Type. Tukaj je sintaksa UDT.

Vnesite Tname_Of_Data_Type var1 kot podatkovni tip "tip podatkov je lahko karkoli, int, matrika ali celo UDT var2 kot podatkovni tip Var3 () kot podatkovni tip --- VarN () kot podatkovni tip Končni tip 

Zato za določitev podatkovnega tipa po meri v VBA začnemo z Type Keyword. Nato napišemo ime podatkovnega tipa po meri. Dogovor je, da pred imenom podatkovnega tipa uporabite T, da lahko ločite med zbirkami vba in UDT.

Vrste podatkov so lahko karkoli. In celo število, niz, varianta, še en UDT, nizi, zbirke, karkoli.

Če želite uporabiti svoj UDT v programu, razglasite njegovo spremenljivko kot katero koli drugo spremenljivko.

Sub UseUDT 'Razglasitev spremenljivke uporabniško določenega tipa podatkov Dim myVar1 kot Tname_Of_Data_Type Dim myVar2 kot Tname_Of_Data_Type End Sub 

Enostavno. Zdaj za uporabo spremenljivk v tem UDT uporabljamo operator dot. Uporabite ime podatkovnega tipa, ki mu sledi pika in ime spremenljivke znotraj.

Sub UseUDT 'Razglasitev spremenljivke uporabniško določenega tipa podatkov Dim myVar1 kot Tname_Of_Data_Type Dim myVar2 kot Tname_Of_Data_Type myVar1.var1 = "Abcd" myVar2.Var2 = "xyvz" End Sub 

Dovolj teorije, pojdimo na primer, da vidimo, kako deluje.

Ustvarite študentsko spremenljivko, ki shranjuje informacije, povezane s študentom

Zato imamo nalogo ustvariti uporabniško definiran podatkovni tip, ki shranjuje podatke, povezane s študenti.

Študent ima ime, priimek, številko rolke, datum rojstva, razred, oddelek, predmete.

Zato ga ustvarimo.

"Ustvaril javno vrsto podatkov študenta Javni tip Tstudent fName As String" Za ime lName As String "Za priimek rNo As Integer" Za številko zvitka clss Kot niz "For section section As String" For Name Section subject () As String " Za predmete predmeta tipa študenta 'Uporabi to vrsto študenta v podprogramu Pod StudentsInfo ()' Ustvarjanje in inicializiranje spremenljivke tipa študenta Dim student1 Kot 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" 'Tiskanje podrobnosti študenta. 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 

Ko zaženete zgornjo podlogo, bo rezultat natisnjen, kot je prikazano spodaj:

Manish

Singh

12334

10

A

fizika

Matematika

Ustvarjanje niza UDT in dostop do elementov

Podobno lahko ustvarite toliko spremenljivk tipa Tstudent, ki jih potrebujete. Lahko celo ustvarite matriko tipa Tstudent, tako kot kateri koli drug podatkovni tip.

Javni tip Tstudent fName As String 'For First Name lName As String' For Last Name rNo As Integer 'For Roll Number clss As string' For section section As String 'For Name Name section () As String' For Subjects of student End Type ' Ustvarjanje nizov Tstudents tipa Sub SchoolInfo () Dim schoolName As String Dim students () As Tstudent schoolName = "Senior School" Študenti ReDim (10) Za i = 0 Za 9 učencev (i) .fName = "name" & Str ( i + 1) študenti (i) .rNo = i + 1 Naprej i Debug.Print ("Ime: Roll No") Za i = 0 do 9. Debug.Print (students (i) .fName & ":" & students ( i) .rNo) Naprej i Konec podm 

Ko zaženete to kodo, bo ta natisnjena v neposrednem oknu.

Ime: Roll No.

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

V zgornji kodi je najprej definirana struktura UDT pred in pod (kasneje bom razložil zakaj). Pravkar smo ustvarili matriko z uporabo ključne besede dim, tako kot za katero koli spremenljivko v VBA.

Nato smo za določitev velikosti nizov uporabili Redim. Nato uporabimo zanko for za inicializacijo matrike.

Za dostop do elementov strukture uporabimo drugo for zanko. To je to.

Zakaj smo UDT razglasili na vrhu modula?

Če UDT najprej razglasimo v modulu, zunaj katere koli podprograma ali funkcije, je na voljo vsem modulom v delovnem zvezku. To pomeni, da če imate v modulu sto podnapisov in funkcij, lahko vsi razglasijo spremenljivke tipa študent v svojem telesu.

Če UDT ni zaseben, bo na voljo vsem modulom v delovnem zvezku. Če želite, da je struktura (UDT) na voljo samo modulu, ki vsebuje, jo razglasite za zasebno.

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

Ne morete imeti UDT na proceduralni ravni. To pomeni, da znotraj podprograma ali funkcije ne morete določiti uporabniško določenega tipa podatkov.

Vgnezdeni uporabniško določeni tipi

Recimo, da imate UDT avto. Avto ima svoje elemente. Podobno imate UDT, imenovano kolo, ki ima lahko svoje lastnosti.

Recimo, da potrebujete podatkovni tip, imenovan vozilo. Vozilo lahko vsebuje avto in kolo. Ali lahko to storimo? Ja, to lahko storimo. Oglejte si spodnjo kodo

Zasebni tip sedežev Tcar Kot celo število ac Kot Boolean typ Kot Barva niza Kot Proizvajalec nizov Kot String Dop Kot Datum rc_no Kot Vrsta konca niza Zasebni tip Tbike sedeži Kot Celo število tip Kot barva niza Kot Proizvajalec nizov Kot Vrsta Dop kot datum rc_no Kot Vrsta konca niza Zasebna Vnesite Številka vozila_Vehicle kot Integer kolo Kot Tbike Car As Tcar End Tip Sub vehicleVarification () Dim myVehicles As Tvehicle myVehicles.number_of_Vehicle = 2 myVehicles.bike.seats = 1 myVehicles.bike.typ = "Racing 4" myVehicles. "myVehicles.car.ac = True Debug.Natisni myVehicles.number_of_Vehicle Debug.Natisni myVehicles.bike.typ Debug.Print myVehicles.car.ac End Sub 

Tu smo definirali tri uporabniško definirane podatkovne vrste. Prvi je Tcar, ki vsebuje nekaj informacij o avtomobilih. Drugič, kolo, vsebuje tudi nekaj informacij o kolesu.

Tretji UDT je ​​Tvehicle. Vsebuje eno spremenljivko za shranjevanje števila vozil in dve spremenljivki tipa Tcar in Tbike.

Vozilo zasebnega tipa

številka_Vozila kot celo število

kolo Tbike

avto kot Tcar

Vrsta konca

Za dostop do spremenljivk Tcar in Tbike lahko uporabimo podatkovni tip Tvehicle. V podpogoju smo kot moja vozila opredelili samo eno spremenljivko tipa Tvehicle. Ko ustvarimo to spremenljivko, VBA ustvari tudi spremenljivke Tcar in Tbike.

Za inicializacijo in dostop do spremenljivk Tcar in Tcar lahko uporabimo spremenljivko myVehicle. Kot lahko vidite v kodi.

myVehicles.number_of_Vehicle = 2

myVehicles.bike.seats = 1

myVehicles.bike.typ = "Dirke"

myVehicles.car.seats = "4"

myVehicles.car.ac = Res

Ko zaženemo podmornico, pride do tega rezultata.

Ta funkcija resnično poveča moč programiranja VBA eksponentno. Podatkovni tip lahko strukturirate kot entitete iz resničnega sveta. Med vrstami podatkov lahko ustvarite odnose, ki so lahko koristni pri velikem projektu.

Torej, fantje, tako lahko ustvarite in uporabite uporabniško določeno vrsto podatkov ali strukturo v VBA. Upam, da mi je uspelo razložiti. Če imate kakršna koli vprašanja v zvezi s tem člankom ali drugimi vprašanji, povezanimi z VBA, me vprašajte v spodnjem razdelku za komentarje. Z veseljem vas bom slišal.

Spremenljivke VBA v Excelu| VBA pomeni Visual Basic for Applications. To je programski jezik podjetja Microsoft. Uporablja se z aplikacijami Microsoft Office, kot so MSExcel, MS-Word in MS-Access, medtem ko so spremenljivke VBA posebne ključne besede.

Spremenljivi obseg programa Excel VBA| V vseh programskih jezikih imamo spremenljivke dostopa, ki določajo, od kod je mogoče dostopati do določene spremenljivke. Excel VBA ni izjema. VBA ima tudi specifikatorje obsega.

Argumenti ByRef in ByVal | Ko se argument posreduje kot argument ByRef na drugo pod -funkcijo ali funkcijo, se pošlje sklic na dejansko spremenljivko. Vse spremembe v kopiji spremenljivke se odražajo v izvirnem argumentu.

Brisanje listov brez potrditvenih pozivov z uporabo VBA v programu Microsoft Excel | Ker z VBA brišete liste, veste, kaj počnete. Excelu želite povedati, naj ne prikaže tega opozorila, in izbrišite prekleti list.

Dodajte in shranite nov delovni zvezek z uporabo VBA v programu Microsoft Excel 2016| V tej kodi smo najprej ustvarili sklic na predmet delovnega zvezka. In potem smo ga inicializirali z novim objektom delovnega zvezka. Prednost tega pristopa je, da lahko preprosto delate na tem novem delovnem zvezku. Tako kot shranjevanje, zapiranje, brisanje itd

Prikaz sporočila v vrstici stanja Excel VBA| Vrstica stanja v Excelu se lahko uporablja kot monitor kode. Ko je vaša koda VBA dolga in z VBA opravljate več nalog, pogosto onemogočite posodobitev zaslona, ​​tako da zaslon ne utripa.

Izklopite opozorilna sporočila z uporabo VBA v programu Microsoft Excel 2016| Ta koda ne samo onemogoči opozorila VBA, ampak tudi poveča časovno učinkovitost kode. Poglejmo, kako.

Priljubljeni članki:

50 bližnjic v Excelu za večjo produktivnost | Poskrbite, da bo vaša naloga hitrejša. S temi 50 bližnjicami boste še hitreje delali v Excelu.

Funkcija VLOOKUP v Excelu | To je ena najpogosteje uporabljenih in priljubljenih funkcij programa Excel, ki se uporablja za iskanje vrednosti iz različnih obsegov in listov.

COUNTIF v Excelu 2016 | Štejte vrednosti s pogoji s to neverjetno funkcijo. Za štetje določenih vrednosti vam ni treba filtrirati podatkov. Funkcija Countif je bistvena za pripravo vaše armaturne plošče.

Kako uporabljati funkcijo SUMIF v Excelu | To je še ena bistvena funkcija armaturne plošče. To vam pomaga povzeti vrednosti za posebne pogoje.