Cum se utilizează structuri în VBA? Tipurile de date definite de utilizator

Cuprins:

Anonim

Să presupunem că încercați să creați un sistem de management al școlii. Aici, veți avea diferite tipuri de variabile, cum ar fi numele elevului, numărul elevului, clasa, etc. , bibliotecar, cursuri, principii etc. Având acum variabile diferite pentru fiecare entitate din școală va fi o muncă dezordonată. Ce zici de crearea unui tip de date de elev, profesor, cursuri etc., care stochează valori legate de acestea. Pentru aceasta putem folosi tipuri de date definite de VBA.

În acest articol, vom afla cum puteți crea propriul tip de date în VBA. Acestea sunt denumite UDT-uri ale VBA.

Definirea unui tip de date definit de utilizator

Pentru a defini o structură sau UDT-uri în VBA folosim blocul Type___End Type. Iată sintaxa unui UDT.

Tastați Tname_Of_Data_Type var1 ca tip de date 'tip de date' poate fi orice, int, matrice sau chiar UDT var2 ca tip de date Var3 () ca tip de date --- VarN () ca tip de date Tip de sfârșit 

Deci, pentru a defini un tip de date personalizat în VBA, începem cu Type Keyword. Apoi scriem numele tipului nostru de date personalizate. Este convențional să utilizați T înainte de numele tipului de date, astfel încât să puteți face diferența între colecțiile vba și UDT-uri.

DataTypes poate fi orice. Și Integer, String, Variant, un alt UDT, Matrice, colecții, orice.

Pentru a utiliza UDT în program declarați variabila sa ca orice altă variabilă.

Sub Utilizare UDT 'Declararea variabilei de tip de date definite de utilizator Dim myVar1 ca Tname_Of_Data_Type Dim myVar2 ca Tname_Of_Data_Type End Sub 

Simplu. Acum, pentru a utiliza variabilele din acest UDT, folosim operatorul punct. Utilizați numele tipului de date urmat de un punct și numele variabilei din interior.

Sub Utilizare UDT 'Declararea variabilei de tip de date definite de utilizator Dim myVar1 ca Tname_Of_Data_Type Dim myVar2 ca Tname_Of_Data_Type myVar1.var1 = "Abcd" myVar2.Var2 = "xyvz" End Sub 

Destul de teorie, să sărim într-un exemplu pentru a vedea cum funcționează.

Creați o variabilă de student care stochează informații legate de student

Așadar, avem sarcina de a crea un tip de date definit de utilizator care stochează informații legate de studenți.

Un elev are un prenume, prenume, număr de rulou, data nașterii, clasă, secțiune, subiecte.

Deci, să o creăm.

„A creat un tip public de date pentru studenți Public Type Tstudent fName As String” Pentru prenumele lName As String ”Pentru prenumele rNo Ca întreg” Pentru Roll Number clss Ca șir „Pentru secțiunea clasei Ca șir„ Pentru subiectele secțiunii () As String ” Pentru subiecții tipului de sfârșit al studentului „Utilizați acest tip de student în subrutină Sub StudentsInfo ()” Crearea și inițializarea variabilei de tip student Dim student1 Ca student T1. student = fName = "Manish" student1.lName = "Singh" student1.rNo = 12334 student1.clss = 10 student1.section = "A" ReDim student1.subjects (2) student1.subjects (0) = "fizică" student1.subjects (1) = "Math" 'Tipărirea detaliilor studentului. 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 

Când rulați sub-ul de mai sus, acesta va imprima rezultatul așa cum se arată mai jos:

Manish

Singh

12334

10

A

fizică

Matematica

Crearea unei matrice de UDT-uri și accesarea elementelor

În mod similar, puteți crea cât mai multe variabile de tip Tstudent de care aveți nevoie. Puteți chiar să creați o matrice de tip Tstudent ca orice alt tip de date.

Tipul public Tstudent fName As String 'Pentru prenumele lName As String' Pentru prenumele rNo As Integer 'For Roll Number clss As string' For Class section As String 'For Section Name subjects () As String' For Subjects of Student End Type ' Crearea unei matrici de Tstudents de tip Sub SchoolInfo () Dim școalăNumă ca șir Școlarizare elevi () Ca Tstudent școalăNume = "Școală Senior" ReDim elevi (10) Pentru i = 0 până la 9 elevi (i) .fName = "nume" & Str ( i + 1) studenti (i) .rNo = i + 1 Urmatorul i Debug.Print ("Nume: Roll No") Pentru i = 0 pana la 9 Debug.Print (studenti (i) .fName & ":" & studenti ( i) .rNu) Următorul i End Sub 

Când rulați acest cod, acesta va fi tipărit în fereastra imediată.

Nume: Nr

numele 1: 1

numele 2: 2

numele 3: 3

numele 4: 4

numele 5: 5

numele 6: 6

numele 7: 7

numele 8: 8

numele 9: 9

numele 10: 10

În codul de mai sus, am definit mai întâi structura UDT înainte și sub (voi explica mai târziu de ce). Tocmai am creat o matrice folosind un cuvânt cheie slab, așa cum facem pentru orice variabilă din VBA.

Apoi am folosit Redim pentru a defini dimensiunea matricelor. Apoi folosim o buclă for pentru a inițializa matricea.

Pentru a accesa elementele structurii folosim altul pentru buclă. Aia este.

De ce am declarat UDT pe partea de sus a modulului?

Dacă declarăm mai întâi un UDT într-un modul, în afara oricărui subrutin sau funcție, acesta este disponibil pentru toate modulele din registrul de lucru. Înseamnă că dacă aveți o sută de subs și funcții într-un modul, toți pot declara variabile de tip Student în corpul lor.

Dacă UDT nu este privat, va fi disponibil pentru toate modulele din registrul de lucru. Dacă doriți ca o structură (UDT) să fie disponibilă numai pentru un modul care conține, declarați-o privată.

Tipul privat Tstudent fName As String lName As String rNo As Integer clss As Integer section As String subject () As String End Type 

Nu puteți avea UDT la nivel procedural. Înseamnă că nu puteți defini un tip de date definit de utilizator într-un subrutină sau funcție.

Tipuri definite de utilizator imbricate

Să presupunem că UDT a sunat la mașină. Mașina are propriile elemente. În mod similar, aveți un UDT numit bicicletă care poate avea propriile sale proprietăți.

Acum să presupunem că aveți nevoie de un tip de date numit vehicul. Vehiculul poate avea o mașină și o bicicletă ca elemente. Putem face asta? Da, putem face asta. Vezi codul de mai jos

Scaune Tcar de tip privat Ca întreg ca Ca tip boolean Ca culoare de șir Ca producător de șir Ca Șir Dop Ca Data rc_no Ca Șir Tip de tip Privat Scaune Tbike Ca întreg Număr Ca șir de culoare Ca producător de șir Ca Șir Dop ca Data rc_no Ca Șir Tip de sfârșit Privat Tastați vehiculul number_of_Vehicle Ca bicicletă integrală Ca mașină Tbike Ca 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 = "4 "myVehicles.car.ac = True Debug.Print myVehicles.number_of_Vehicle Debug.Print myVehicles.bike.typ Debug.Print myVehicles.car.ac End Sub 

Aici, am definit trei tipuri de date definite de utilizator. În primul rând este Tcar care conține câteva informații legate de mașini. Al doilea este bicicleta, conține și câteva informații despre bicicletă.

Al treilea UDT este Tvehicle. Conține o variabilă pentru stocarea numărului de vehicule și două variabile de tip Tcar și Tbike.

Vehicul de tip privat

number_of_Vehicle Ca întreg

bicicleta Ca Tbike

masina Ca Tcar

Tip final

Pentru a accesa variabilele Tcar și Tbike putem folosi tipul de date Tvehicle. În sub, am definit o singură variabilă de tip Tvehicle ca myVehicles. Când creăm această variabilă, VBA creează și variabile Tcar și Tbike.

Pentru a inițializa și accesa variabilele Tcar și Tcar, putem folosi variabila myVehicle. După cum puteți vedea în cod.

myVehicles.number_of_Vehicle = 2

myVehicles.bike.seats = 1

myVehicles.bike.typ = "Curse"

myVehicles.car.seats = "4"

myVehicles.car.ac = Adevărat

Când rulăm sub, așa se produce rezultatul.

Această caracteristică crește într-adevăr puterea de programare VBA exponențial. Vă puteți structura tipul de date ca entități din lumea reală. Puteți crea relații între tipurile de date care pot fi utile într-un proiect mare.

Deci, băieți, așa puteți crea și utiliza un tip de date sau o structură definită de utilizator în VBA. Sper că am putut să o explic. Dacă aveți întrebări cu privire la acest articol sau la orice altă întrebare legată de VBA, întrebați-mă în secțiunea de comentarii de mai jos. Voi fi foarte fericit să aud de la tine.

Variabile VBA în Excel| VBA înseamnă Visual Basic pentru aplicații. Este un limbaj de programare de la Microsoft. Este utilizat cu aplicații Microsoft Office, cum ar fi MSExcel, MS-Word și MS-Access, în timp ce variabilele VBA sunt cuvinte cheie specifice.

Domeniul de aplicare variabil VBA Excel| În toate limbajele de programare, avem specificatori de acces variabil care definesc de unde poate fi accesată o variabilă definită. Excel VBA nu este o excepție. Și VBA are specificatori de domeniu.

Argumente ByRef și ByVal | Când un argument este transmis ca argument ByRef către un sub sau funcție diferit, este trimisă referința variabilei reale. Orice modificare adusă copiei variabilei se va reflecta în argumentul original.

Ștergeți foile fără solicitări de confirmare folosind VBA în Microsoft Excel | Deoarece ștergeți foi folosind VBA, știți ce faceți. Ați dori să spuneți Excel să nu afișeze acest avertisment și să șteargă afurisita de foaie.

Adăugați și salvați un registru de lucru nou folosind VBA în Microsoft Excel 2016| În acest cod, am creat mai întâi o referință la un obiect de registru de lucru. Și apoi l-am inițializat cu un nou obiect de registru de lucru. Avantajul acestei abordări este că puteți face operațiuni cu ușurință pe acest nou registru de lucru. Cum ar fi salvarea, închiderea, ștergerea etc.

Afișați un mesaj pe bara de stare Excel VBA| Bara de stare în excel poate fi utilizată ca monitor de cod. Când codul dvs. VBA este lung și faceți mai multe sarcini folosind VBA, dezactivați adesea actualizarea ecranului, astfel încât să nu vedeți ecranul care pâlpâie.

Dezactivați mesajele de avertizare folosind VBA în Microsoft Excel 2016| Acest cod nu numai că dezactivează alertele VBA, ci și crește eficiența în timp a codului. Să vedem cum.

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face să lucrați și mai rapid pe Excel.

Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.

COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu trebuie să vă filtrați datele pentru a număra anumite valori. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.

Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.