Kaip naudotis struktūromis VBA? Vartotojo apibrėžti duomenų tipai

Tarkime, jūs bandote sukurti mokyklos valdymo sistemą. Čia turėsite įvairių tipų kintamuosius, tokius kaip mokinio vardas, mokinio sąrašas, klasė ir pan. , bibliotekininkas, pamokos, principas ir tt Dabar, kai kiekvienam mokyklos dalykui bus skirtingi kintamieji, bus nepatogus darbas. Kaip sukurti mokinio, mokytojo, klasių ir tt duomenų tipą, kuriame būtų saugomos su jomis susijusios vertės. Tam galime naudoti apibrėžtus VBA duomenų tipus.

Šiame straipsnyje mes sužinosime, kaip galite sukurti savo duomenų tipą VBA. Jie vadinami VBA UDT.

Vartotojo apibrėžto duomenų tipo apibrėžimas

Norėdami apibrėžti struktūrą ar UDT VBA, naudojame Type___End Type bloką. Štai UDT sintaksė.

Įveskite Tname_Of_Data_Type var1 kaip duomenų tipą "duomenų tipas gali būti bet koks, int, masyvas ar net UDT var2 kaip duomenų tipas Var3 () kaip duomenų tipas --- VarN () kaip duomenų tipas pabaigos tipas 

Taigi, norėdami apibrėžti pasirinktinį duomenų tipą VBA, pradedame nuo tipo raktinio žodžio. Tada parašome savo pasirinkto duomenų tipo pavadinimą. Įprasta naudoti T prieš duomenų tipo pavadinimą, kad galėtumėte atskirti vba kolekcijas ir UDT.

Duomenų tipai gali būti bet kokie. Ir sveikasis skaičius, eilutė, variantas, kitas UDT, masyvai, kolekcijos, bet kas.

Norėdami naudoti savo UDT programoje, deklaruokite jo kintamąjį, kaip ir bet kurį kitą kintamąjį.

„Sub UseUDT“ vartotojo apibrėžto duomenų tipo kintamojo „Dim myVar1“ deklaravimas kaip „Tname_Of_Data_Type“ Dim myVar2 kaip „Tname_Of_Data_Type End Sub“ 

Paprasta. Dabar, norėdami naudoti šio UDT kintamuosius, naudojame taškų operatorių. Naudokite duomenų tipo pavadinimą, po kurio eina taškas ir kintamojo pavadinimas.

„Sub UseUDUD“ vartotojo apibrėžto duomenų tipo „Dim myVar1“ kintamasis kaip Tname_Of_Data_Type Dim myVar2 kaip Tname_Of_Data_Type myVar1.var1 = "Abcd" myVar2.Var2 = "xyvz" Pabaiga 

Užteks teorijos, pereikime prie pavyzdžio, kad pamatytume, kaip ji veikia.

Sukurkite studento kintamąjį, kuriame saugoma su studentu susijusi informacija

Taigi turime užduotį sukurti vartotojo apibrėžtą duomenų tipą, kuriame būtų saugoma su mokiniais susijusi informacija.

Mokinys turi vardą, pavardę, sąrašo numerį, gimimo datą, klasę, skyrių, dalykus.

Taigi sukurkime ją.

„Sukurtas viešas studentų duomenų tipas Viešasis tipas Tstudent fName As String“ Vardui lName As String „Pavardei rNo As Integer“ Roll Roll clss As string kaip Klasės skyriui kaip eilutė „Skilties pavadinimo temoms () kaip eilutė“ Studentų pabaigos tipo dalykams 'Naudokite šį Tstudent tipą subproutine Sub StudentsInfo ()' Studento tipo kintamojo sukūrimas ir inicijavimas Dim student1 Kaip Tstudent student1.fName = "Manish" student1.lName = "Singh" student1.rNo = 12334 student1.clss = 10 student1.section = "A" ReDim student1.subjects (2) student1.subjects (0) = "fizikos" studentas1.subjects (1) = "Math" 'Spausdinant studento duomenis. 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)) ) Derinti. Spausdinti (studentas1. Dalykai (1)) Pabaiga 

Kai paleisite aukščiau pateiktą antrinę dalį, rezultatas bus atspausdintas, kaip parodyta žemiau:

Maniškis

Singhas

12334

10

A

fizika

Matematika

UDT masyvo kūrimas ir prieiga prie elementų

Panašiai galite sukurti tiek, kiek jums reikia „Tstudent“ tipo kintamųjų. Jūs netgi galite sukurti „Tstudent“ tipo masyvą, kaip ir bet kurį kitą duomenų tipą.

Viešasis tipas „Tstudent fName As String“ Vardui lName As String „Pavardei rNo As Integer“ Roll Roll clss As string „Tstudents“ tipo „Sub SchoolInfo“ () „Dim schoolName“ kaip „String Dim“ studentų masyvų kūrimas () „As Tstudent schoolName =" Senior School “(„ Senior School “)„ ReDim “mokiniai (10) Skirta i = 0 - 9 mokiniams (i) .fName =" name "& Str ( i + 1) studentai (i) .rNo = i + 1 Kitas i Debug.Print ("Pavadinimas: ritinio Nr.") Jei i = 0 - 9 Debug.Print (studentai (i) .fVardas & ":" & studentai ( i) .rNo) Kitas i Pabaiga 

Kai paleisite šį kodą, jis bus atspausdintas tiesioginiame lange.

Pavadinimas: ritinio Nr

vardas 1: 1

vardas 2: 2

vardas 3: 3

vardas 4: 4

vardas 5: 5

vardas 6: 6

vardas 7: 7

vardas 8: 8

vardas 9: 9

vardas 10: 10

Pirmiau pateiktame kode pirmiausia apibrėžta UDT struktūra ir antrinė dalis (vėliau paaiškinsiu, kodėl). Mes ką tik sukūrėme masyvą naudodami silpną raktinį žodį, kaip tai darome bet kuriam VBA kintamajam.

Tada mes naudojome „Redim“, kad apibrėžtume masyvų dydį. Vėliau masyvui inicijuoti naudojame ciklą for.

Norėdami pasiekti struktūros elementus, ciklui naudojame kitą. Viskas.

Kodėl mes paskelbėme UDT modulio viršuje?

Jei UDT pirmą kartą deklaruojame modulyje, nepriklausomai nuo bet kokios paprogramės ar funkcijos, jis yra prieinamas visiems darbo knygos moduliams. Tai reiškia, kad jei modulyje yra šimtas subsąskaitų ir funkcijų, visos jos gali savo kūne deklaruoti studento tipo kintamuosius.

Jei UDT nėra privatus, jis bus prieinamas visiems darbo knygos moduliams. Jei norite, kad struktūra (UDT) būtų prieinama tik moduliui, kuriame yra, paskelbkite ją privačia.

Privatus tipas Tstudent fName As String lName As String rNo As Integer clss Kaip Sveikasis skyrius Kaip Styginių temos () Kaip Stygos pabaigos tipas 

Jūs negalite turėti UDT procedūriniu lygmeniu. Tai reiškia, kad jūs negalite apibrėžti vartotojo apibrėžto duomenų tipo paprogramėje ar funkcijoje.

Įterpti naudotojo nustatyti tipai

Tarkime, kad UDT vadinamas automobiliu. Automobilis turi savo elementų. Panašiai turite UDT, vadinamą dviračiu, kuris gali turėti savo savybių.

Dabar tarkime, kad jums reikia duomenų tipo, vadinamo transporto priemone. Transporto priemonės elementai gali būti automobilis ir dviratis. Ar galime tai padaryti? Taip, mes galime tai padaryti. Žiūrėkite žemiau esantį kodą

Privataus tipo „Tcar“ sėdynės kaip sveikas skaičius ac Kaip „Boolean typ“ kaip eilutės spalva Kaip eilutės gamintojas Kaip „String Dop“ kaip data rc_no Kaip eilutės pabaigos tipas Privatus tipas „Tbike“ sėdynės kaip sveikasis skaičius kaip eilutės spalva „String“ gamintojas „String Dop“ kaip data rc_no „String End Type“ privatus Tipas Transporto priemonės numeris_transporto priemonė Kaip sveikas dviratis Kaip „Tbike“ automobilis Kaip „Tcar“ galas Tipas „Sub vehicleVarification“ () „Dim myVehicles“ kaip „Tvhhicle“ "myVehicles.car.ac = Tikras derinimas. Spausdinti manoVehicles.number_of_Vehicle Debug.Print myVehicles.bike.typ Debug.Print myVehicles.car.ac End Sub 

Čia mes apibrėžėme tris vartotojo apibrėžtus duomenų tipus. Pirmasis yra „Tcar“, kuriame yra tam tikros informacijos, susijusios su automobiliais. Antra - dviratis, jame taip pat yra informacijos apie dviratį.

Trečiasis UDT yra „Tvehicle“. Jame yra vienas kintamasis transporto priemonių skaičiui saugoti ir du „Tcar“ ir „Tbike“ tipo kintamieji.

Privataus tipo automobilis

transporto priemonės skaičius kaip sveikasis skaičius

dviratis Kaip Tbike

automobilis Kaip Tcar

Pabaigos tipas

Norėdami pasiekti „Tcar“ ir „Tbike“ kintamuosius, galime naudoti „Tvehicle“ duomenų tipą. Poskyryje mes apibrėžėme tik vieną „Tvehicle“ tipo kintamąjį kaip „myVehicles“. Kai sukuriame šį kintamąjį, VBA sukuria ir „Tcar“ bei „Tbike“ kintamuosius.

Norėdami inicijuoti ir pasiekti „Tcar“ ir „Tcar“ kintamuosius, galime naudoti kintamąjį „myVehicle“. Kaip matote kode.

„MyVehicles.n___Transport“ = 2

myVehicles.bike.seats = 1

myVehicles.bike.typ = "Lenktynės"

myVehicles.car.seats = "4"

myVehicles.car.ac = Tiesa

Kai paleidžiame antrinį, rezultatas gaunamas taip.

Ši funkcija tikrai padidina VBA programavimo galią eksponentiškai. Galite struktūrizuoti savo duomenų tipą kaip realaus pasaulio subjektai. Galite sukurti ryšius tarp duomenų tipų, kurie gali būti naudingi dideliame projekte.

Taigi taip, vaikinai, taip galite sukurti ir naudoti vartotojo apibrėžtą duomenų tipą ar struktūrą VBA. Tikiuosi, kad sugebėjau tai paaiškinti. Jei turite klausimų apie šį straipsnį ar kitus su VBA susijusius klausimus, paklauskite manęs komentarų skiltyje žemiau. Man bus labai malonu išgirsti jus.

VBA kintamieji „Excel“| VBA reiškia „Visual Basic for Applications“. Tai programavimo kalba iš „Microsoft“. Jis naudojamas su „Microsoft Office“ programomis, tokiomis kaip „MSExcel“, „MS-Word“ ir „MS-Access“, tuo tarpu VBA kintamieji yra konkretūs raktiniai žodžiai.

„Excel VBA“ kintamoji apimtis| Visose programavimo kalbose mes turime kintamosios prieigos specifikatorius, kurie apibrėžia, iš kur galima pasiekti apibrėžtą kintamąjį. „Excel VBA“ nėra išimtis. VBA taip pat turi apimties specifikacijas.

ByRef ir ByVal argumentai | Kai argumentas perduodamas kaip „ByRef“ argumentas kitam padaliniui ar funkcijai, siunčiama tikrojo kintamojo nuoroda. Bet kokie kintamojo kopijos pakeitimai atsispindės pradiniame argumente.

Ištrinkite lapus be patvirtinimo raginimų naudodami „Microsoft Excel“ VBA | Kadangi trinate lapus naudodami VBA, žinote, ką darote. Norite pasakyti „Excel“ nerodyti šio įspėjimo ir ištrinti prakeiktą lapą.

Pridėkite ir išsaugokite naują darbaknygę naudodami „Microsoft Excel 2016“ VBA| Šiame kode pirmiausia sukūrėme nuorodą į darbaknygės objektą. Ir tada mes jį inicijavome naudodami naują darbo knygos objektą. Šio metodo pranašumas yra tas, kad galite lengvai atlikti operacijas su šia nauja darbaknyge. Kaip išsaugoti, uždaryti, ištrinti ir pan

Rodyti pranešimą „Excel“ VBA būsenos juostoje| „Excel“ būsenos juosta gali būti naudojama kaip kodo monitorius. Kai jūsų VBA kodas yra ilgas ir atliekate kelias užduotis naudodami VBA, dažnai išjungiate ekrano atnaujinimą, kad nematytumėte to ekrano mirgėjimo.

Išjunkite įspėjamuosius pranešimus naudodami VBA programoje „Microsoft Excel 2016“| Šis kodas ne tik išjungia VBA įspėjimus, bet ir padidina kodo laiko efektyvumą. Pažiūrėkime, kaip.

Populiarūs straipsniai:

50 „Excel“ nuorodų, skirtų produktyvumui padidinti | Greičiau atlikite savo užduotį. Šie 50 sparčiųjų klavišų leis dar greičiau dirbti naudojant „Excel“.

„VLOOKUP“ funkcija „Excel“ | Tai yra viena iš dažniausiai naudojamų ir populiariausių „Excel“ funkcijų, naudojama norint ieškoti vertės iš įvairių diapazonų ir lapų.

COUNTIF „Excel 2016“ | Naudodami šią nuostabią funkciją, suskaičiuokite reikšmes su sąlygomis. Norint suskaičiuoti konkrečias vertes, nereikia filtruoti duomenų. Skaitiklio funkcija yra būtina norint paruošti prietaisų skydelį.

Kaip naudoti „SUMIF“ funkciją „Excel“ | Tai dar viena esminė prietaisų skydelio funkcija. Tai padeda apibendrinti vertes konkrečiomis sąlygomis.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave