Oletame, et proovite luua kooli juhtimissüsteemi. Siin on teil erinevat tüüpi muutujaid, näiteks õpilase nimi, õpilaste nimekiri, klass jne. Koolis on ka õpetajaid, nii et seal on õpetajate nimed, õpetaja aine, klassid jne. Sarnaselt on palju muid objekte, näiteks , raamatukoguhoidja, klassid, põhimõte jne. Nüüd on koolis iga üksuse jaoks erinevate muutujate omamine räpane töö. Kuidas oleks luua õpilase, õpetaja, klasside jms andmetüüp, mis salvestab nendega seotud väärtused. Selleks saame kasutada VBA määratletud andmetüüpe.
Selles artiklis õpime, kuidas saate VBA -s oma andmetüüpi luua. Neid nimetatakse VBA UDT -deks.
Kasutaja määratud andmetüübi määratlemine
Struktuuri või UDT -de määratlemiseks VBA -s kasutame plokki Type___End Type. Siin on UDT süntaks.
Sisestage andmetüübiks andmetüüp Tname_Of_Data_Type var1, andmetüüp võib olla mis tahes, int, massiiv või isegi UDT var2 andmetüübina Var3 () andmetüüpina --- VarN () andmetüübina Lõpptüüp
Nii et VBA -s kohandatud andmetüübi määratlemiseks alustame tüübiga Märksõna. Seejärel kirjutame oma kohandatud andmetüübi nime. On tavaks kasutada T enne andmetüübi nime, et saaksite eristada vba kogusid ja UDT -sid.
Andmetüübid võivad olla kõik. Ja täisarv, string, variant, teine UDT, massiivid, kogud, kõik.
UDT kasutamiseks programmis deklareerige selle muutuja nagu iga teine muutuja.
AlamkasutusUDT 'Kasutaja määratud andmetüübi Dim muutuja deklareerimine Dim myVar1 kui Tname_Of_Data_Type Dim myVar2 kui Tname_Of_Data_Type End Sub
Lihtne. Selle UDT muutujate kasutamiseks kasutame punktoperaatorit. Kasutage andmetüübi nime, millele järgneb punkt ja muutuja nimi.
AlamkasutusUDT 'Deklareeriv muutuja kasutaja määratud andmetüübist Dim myVar1 kui Tname_Of_Data_Type Dim myVar2 kui Tname_Of_Data_Type myVar1.var1 = "Abcd" myVar2.Var2 = "xyvz" End Sub
Piisab teooriast, hüppame näite juurde, et näha, kuidas see toimib.
Looge õpilase muutuja, mis salvestab õpilasega seotud teabe
Seega on meil ülesanne luua kasutaja määratud andmetüüp, mis salvestab õpilastega seotud teabe.
Õpilasel on eesnimi, perekonnanimi, rullinumber, sünniaeg, klass, sektsioon, õppeained.
Nii et loome selle.
"Loodud avalik õpilase andmetüüp Avalik tüüp Tstudent fName kui string" Eesnime jaoks lName kui string "Perekonnanime jaoks rNo kui täisarv" Veerunumbri clss kui string Õpilaste lõputüübi subjektide jaoks 'Kasutage seda Tstudent tüüpi alamprogrammis Sub StudentsInfo ()' Õpilastüübi muutuja loomine ja lähtestamine Dim student1 Nagu Tstudent student1.fName = "Manish" student1.lName = "Singh" student1.rNo = 12334 student1.clss = 10 õpilast1.jagu = "A" ReDimi õpilane1.ained (2) õpilane1.ained (0) = "füüsika" õpilane1.ained (1) = "Matemaatika" 'Õpilase andmete printimine. 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)) ) Silumine. Print (õpilane1. Teemad (1)) Lõpu alamosa
Kui käivitate ülaltoodud alam, prindib see tulemuse, nagu allpool näidatud:
Manish
Singh 12334 10 A Füüsika Matemaatika |
UDT -de massiivi loomine ja elementidele juurdepääs
Samamoodi saate luua nii palju Tstudent tüüpi muutujaid, kui vajate. Saate isegi luua Tstudent tüüpi massiivi nagu mis tahes muud andmetüüpi.
Avalik tüüp Tstudent fName kui string "Eesnime jaoks lName kui string" Perekonnanime jaoks rNo kui täisarv "Rollinumbri jaoks clss kui string" Klassi sektsiooni kui string "Jaotise nime subjektide jaoks () Stringina" Õpilase lõpptüübi subjektide jaoks " Massiivide loomine Tstudents tüüpi Sub SchoolInfo () Dim schoolName As String Dim õpilased () As Tstudent schoolName = "Senior School" ReDim õpilased (10) i = 0 kuni 9 õpilasele (i) .fName = "name" & Str ( i + 1) õpilased (i). rNo = i + 1 Järgmine i Debug.Print ("Nimi: rullnumber") I = 0 kuni 9 Silumine. Print (õpilased (i) .fName & ":" & õpilased ( i) .rNo) Järgmine i End Sub
Selle koodi käivitamisel prinditakse see kohe aknasse.
Nimi: rull nr
nimi 1: 1 nimi 2: 2 nimi 3: 3 nimi 4: 4 nimi 5: 5 nimi 6: 6 nimi 7: 7 nimi 8: 8 nimi 9: 9 nimi 10: 10 |
Ülaltoodud koodis määratleti kõigepealt UDT struktuur enne ja alam (selgitan hiljem, miks). Lõime just massiivi, kasutades hämarat märksõna, nagu me teeme VBA mis tahes muutuja puhul.
Seejärel kasutasime massiivi suuruse määramiseks Redimi. Seejärel kasutame massiivi initsialiseerimiseks silmust for.
Struktuuri elementidele juurdepääsemiseks kasutame silmuse jaoks teist. See on kõik.
Miks kuulutasime mooduli ülaosas UDT?
Kui deklareerime UDT kõigepealt moodulis, väljaspool mis tahes alamprogrammi või funktsiooni, on see saadaval kõigile töövihiku moodulitele. See tähendab, et kui teil on moodulis sada alamsüsteemi ja funktsiooni, saavad nad kõik oma kehas deklareerida õpilase tüüpi muutujaid.
Kui UDT pole privaatne, on see saadaval kõigile töövihiku moodulitele. Kui soovite, et struktuur (UDT) oleks saadaval ainult sisaldavale moodulile, kuulutage see privaatseks.
Privaatne tüüp Tstudent fName Stringina lName As String rNo Nagu täisarv clss Nagu täisarvude sektsioon Stringi subjektidena () Stringi lõpptüübina
Teil ei saa olla UDT -d menetlustasandil. See tähendab, et te ei saa alamprogrammis või funktsioonis määratleda kasutaja määratud andmetüüpi.
Pesastatud kasutaja määratud tüübid
Oletame, et teil on UDT kutsutud autoks. Autol on omad elemendid. Samamoodi on teil UDT nimega jalgratas, millel võivad olla oma omadused.
Oletame nüüd, et vajate andmetüüpi, mida nimetatakse sõidukiks. Sõiduki osad võivad olla auto ja jalgratas. Kas saame seda teha? Jah, me saame seda teha. Vaadake allolevat koodi
Privaatse tüübiga Tcar -istmed täisarvuna Ac nagu Boole'i tüüp Nagu stringivärv Stringide tootja As String Dop As Date Kuupäev rc_no Stringi lõpptüüp Privaatne tüüp Tbike -istmed Täisarvutüüp Stringivärv Stringide tootja String Dop As Date rc_no Stringi lõpptüüpi privaatne Tüüp Tvehicle number_of_Vehicle As Integer bike As Tbike car As Tcar End Type Sub vehicleVarification () Dim myVehicles As Tvehicle myVehicles.number_of_Vehicle = 2 myVehicles.bike.seats = 1 myVehicles.bike.typ = "Racing" myVehicles.car.seats = " "myVehicles.car.ac = True Debug.Print myVehicles.number_of_Vehicle Debug.Print myVehicles.bike.typ Debug.Print myVehicles.car.ac End Sub
Siin oleme määratlenud kolm kasutaja määratud andmetüüpi. Esiteks on Tcar, mis sisaldab autodega seotud teavet. Teiseks on jalgratas, see sisaldab ka mõnda teavet jalgratta kohta.
Kolmas UDT on Tvehicle. See sisaldab ühte muutujat sõidukite arvu salvestamiseks ning kahte Tcar ja Tbike tüüpi muutujat.
Eratüüpi sõiduk
number_of_Vehicle kui täisarv
jalgratas Nagu Tbike
auto Nagu Tcar
Lõpptüüp
Tcar ja Tbike muutujatele juurdepääsemiseks saame kasutada andmetüüpi Tvehicle. Alamjaotises oleme määratlenud ainult ühe Tvehicle tüüpi muutuja myVehicles. Selle muutuja loomisel loob VBA ka Tcar ja Tbike muutujad.
Tcar ja Tcar muutujate lähtestamiseks ja neile juurdepääsuks saame kasutada muutujat myVehicle. Nagu näete koodis.
myVehicles.number_of_Vehicle = 2
myVehicles.bike.seats = 1
myVehicles.bike.typ = "Võidusõit"
myVehicles.car.seats = "4"
myVehicles.car.ac = Tõsi
Kui me alamprogrammi käivitame, ilmneb see tulemus.
See funktsioon suurendab tõesti VBA programmeerimise võimsust eksponentsiaalselt. Saate oma andmetüüpi struktureerida nagu reaalse maailma üksusi. Saate luua seoseid andmetüüpide vahel, mis võivad olla kasulikud suures projektis.
Nii et jah, poisid, nii saate VBA -s luua ja kasutada kasutaja määratud andmetüüpi või struktuuri. Loodan, et suutsin seda selgitada. Kui teil on selle artikli või muude VBA -ga seotud küsimuste kohta küsimusi, küsige minult allpool kommentaaride jaotises. Mul on tõesti hea meel sinust kuulda.
VBA muutujad Excelis| VBA tähistab Visual Basic for Applications. See on Microsofti programmeerimiskeel. Seda kasutatakse koos Microsoft Office'i rakendustega, nagu MSExcel, MS-Word ja MS-Access, samas kui VBA muutujad on spetsiifilised märksõnad.
Exceli VBA muutuv ulatus| Kõigis programmeerimiskeeltes on meil muutuva juurdepääsu spetsifikatsioonid, mis määravad, kust saab määratud muutujale juurde pääseda. Excel VBA pole erand. Ka VBA -l on ulatuse täpsustajad.
ByRef ja ByVal argumendid | Kui argument edastatakse ByRef argumendina teisele alam- või funktsioonile, saadetakse tegeliku muutuja viide. Kõik muutuja koopiasse tehtud muudatused kajastuvad algses argumendis.
Kustutage lehed ilma kinnitusviipadeta, kasutades Microsoft Excelis VBA -d | Kuna kustutate lehti VBA abil, teate, mida teete. Sooviksite Excelil seda hoiatust mitte kuvada ja neetud leht kustutada.
Uue töövihiku lisamine ja salvestamine Microsoft Excel 2016 VBA abil| Selles koodis lõime esmalt viite töövihiku objektile. Ja siis vormistasime selle uue töövihikuobjektiga. Selle lähenemisviisi eeliseks on see, et saate selle uue töövihikuga hõlpsalt toiminguid teha. Nagu salvestamine, sulgemine, kustutamine jne
Kuva teade Exceli VBA olekuribal| Exceli olekuriba saab kasutada koodimonitorina. Kui teie VBA -kood on pikk ja teete VBA -ga mitmeid ülesandeid, keelate sageli ekraani värskendamise, nii et te ei näe seda ekraani vilkumist.
Lülitage hoiatussõnumid välja Microsoft Excel 2016 VBA abil| See kood mitte ainult ei luba VBA hoiatusi, vaid suurendab ka koodi ajakasutust. Vaatame, kuidas.
Populaarsed artiklid:
50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.
Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.
COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea oma andmeid teatud väärtuste loendamiseks filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.
Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.