vba data types numeric
Ta vadnica razlaga različne številske in neštevilske vrste podatkov, ki so na voljo v VBA. Spoznali bomo tudi pretvorbe podatkovnih tipov :
Vsak dan naletimo na številne vrste podatkov, kot so ime, datum, računi, cena blaga itd. Vsi ti podatki pripadajo določeni vrsti in se njihove vrednosti ne morejo oddaljiti od vrste, ki ji je pripisana. Podobno ima VBA veliko vrst podatkov, ki se uporabljajo za izvedbo zahtevanega dejanja.
V tej vadnici bomo spoznali različne vrste podatkov, ki se uporabljajo v VBA, in videli, kako bodo ti pomagali pri organizaciji našega programa. Preučili bomo tudi pretvorbo enega podatkovnega tipa v drugega.
=> Tukaj preverite VSE Vadnice VBA
Kaj se boste naučili:
- Kategorije podatkovnih vrst
- Zaključek
Kategorije podatkovnih vrst
Podatkovni tip pove računalniku vrsto podatkov, ki jih je treba shraniti z uporabo spremenljivke. Podatkovni tipi so razdeljeni v 2 kategoriji, tj.številske in neštevilske vrste podatkov
Numerične vrste podatkov
Te vrste se uporabljajo za izvajanje matematičnih operacij, kot so seštevanje, odštevanje itd. Primer, izračun odstotkov, cena delnice, provizije, računi, starost itd.
V VBA obstaja 7 vrst numeričnih tipov podatkov, kot je navedeno spodaj.
Številski tip podatkov | |
---|---|
7. | Decimalno |
1. | Bajt |
dva | Celo število |
3. | dolga |
4. | Samski |
5. | Dvojno |
6. | Valuta |
Oglejmo si na kratko vse številčne tipe podatkov.
# 1) Vrsta podatkov bajtov
Ta podatkovni tip zahteva samo en bajt pomnilnika. Spremenljivke s podatkovnim tipom Byte lahko shranijo vrednosti od 0 do 255. Privzeta vrednost byte je 0. Negativne vrednosti in vrednosti, večje od 255, niso dovoljene. V primeru, da poskusite dodeliti neveljavne vrednosti, se vrne napaka Overflow.
Sintaksa: Dim Vname kot bajt
Tu je Vname ime spremenljivke, Byte pa podatkovni tip spremenljivke.
Primer:
Sub ByteDTtest() Dim vname1 As Byte vname1 = 10 MsgBox 'Value of vname1 is : “ &vname1 End Sub
Rezultat je podan spodaj
# 2) Celoštevilčni podatkovni tip
Ti podatkovni tipi se uporabljajo za shranjevanje celotne celoštevilčne vrednosti. Ta zaseda 2 bajta pomnilnika. Celo število je ena najpogosteje uporabljenih podatkovnih vrst. Sprejemajo tako pozitivne vrednosti, negativne vrednosti kot tudi nič. Imajo razpon med -32.768 in 32.767.
Syntax: Dim vname As Integer
Primer:
Sub IntDTtest() Dim vname1, vname2 As Integer vname1 = 10 vname2 = -20 MsgBox 'Value of Integer variable is ' & vname1 & ' and ' & vname2 End Sub
Rezultat je podan spodaj
# 3) Dolga vrsta podatkov
To je alternativa celoštevilskemu podatkovnemu tipu, ki hrani tudi celo celoštevilsko vrednost. Vendar zaseda več pomnilnika kot celoštevilčna spremenljivka, ki je 4 bajta. Ima razpon vrednosti od -2,147,483,648 do 2,147,483,648
Sintaksa: Dim vname As Long
Sub IntDTtest() Dim vname1, vname2 As Integer vname1 = 10 vname2 = -20 MsgBox 'Value of Integer variable is ' & vname1 & ' and ' & vname2 End Sub
Če zgornjo kodo izvedete s celoštevilčno spremenljivko, boste dobili napako pri prelivanju, ker je v Excelu 1048576 vrstic in podatkovni tip Integer podpira samo do 32.767. Kot je prikazano spodaj, ko je vrsta podatkov dolga, se prikaže ustrezen rezultat.
vr slušalke, ki delujejo z xbox one
Ko pa je vrsta podatkov celo število, se vrže napaka pri prelivanju.
# 4) Tip decimalnih podatkov
To je natančen numerični tip podatkov, ki se uporablja za njegovo natančnost. To je skupno število števk in število števk na desni strani decimalne vejice, ki se imenuje faktor skaliranja.
V VBA so številke pomanjšane z močjo 10. Primerno je, da te vrste uporabljate med manipulacijo z velikimi številkami, ki potrebujejo natančno vrednost. Ta zaseda 14 bajtov v spominu.
Vendar spremenljivk ni mogoče neposredno prijaviti kot decimalni tip podatkov. Če želite uporabiti Decimal, morate uporabiti funkcijo pretvorbe CDec. Uporabiti morate podatkovni tip Variant.
Ta podatkovni tip vsebuje spodnji obseg vrednosti.
+/- 79.228.162.514.264.337.593.543.950.335 brez decimalne vejice
+/- 7,9228162514264337593543950335 z 28 decimalnimi mesti desno od decimalne številke.
Najmanjša sprejemljiva vrednost, ki ni nič, je +/- 0,0000000000000000000000000001.
Syntax: Dim vname As variant
Sub DecimalDataTypeTest() Dim DecValue As Variant DecValue = CDec(1000.4560323034) MsgBox 'Data type of Decvalue variable is : ' & TypeName(DecValue) & ' value ' & DecValue End Sub
Opomba: Funkcija TypeName bo dala ime tipa podatkov
Izhod:
# 5) Enotni podatkovni tip
Ta podatkovni tip se uporablja za shranjevanje številk s plavajočo vejico z eno natančnostjo. Zaseda 4 bajte pomnilnika. Privzeta vrednost je 0 in vsebuje decimalne vrednosti. Klicaj (!) Lahko uporabite med razglasitvijo spremenljivke, kot je prikazano v spodnji sintaksi.
Sprejeto območje vrednosti je:
3.402823E38 do -1.401298E-45 za negativne vrednosti
1.401298E-45 do 3.402823E38 za pozitivne vrednosti.
Sintaksa
Dim VariableName kot Single
ali
Dim VariableName!
Sub SingleDataTypeTest() Dim SingleVal1 As Single Dim SingleVal2! SingleVal1 = 123 SingleVal2 = 333.44 MsgBox ('Data type of SingleVal1 is ' & TypeName(SingleVal1) & ' with value ' & SingleVal1 & ' and datatype of SingleVal2 is ' & TypeName(SingleVal2) & ' with value ' & SingleVal2) End Sub
# 6) Double Data Type
Podatki Double VBA se lahko uporabljajo za shranjevanje tako celih števil kot ulomkov. Double se uporablja za shranjevanje številk s plavajočo vejico z dvojno natančnostjo. Zaseda 8 bajtov pomnilnika in ima vrsto vrednosti.
-1,79769313486231E308 do -4,94065645841247E-324 za negativne vrednosti
4.94065645841247E-324 do 1.79769313486232E308 za pozitivne vrednosti
Tako kot posamezni podatkovni tip, je tudi dvojno mogoče razglasiti s simbolom Hash (#), kot je prikazano spodaj.
Sintaksa
Dim VariableName kot Double
ali
Dim VariableName #
primer hash tabele c ++
Sub DoubleDataTypeTest() Dim douValue As Double Dim douVal1# douValue = 100.21 douVal1 = 333.44 MsgBox ('Data type of douValue is ' & TypeName(douValue) & ' with value ' & douValue & ' and datatype of douVal1 is ' & TypeName(douVal1) & ' with value ' & douVal1) End Sub
# 7) Vrsta podatkov o valuti
Ta vrsta podatkov lahko zavzame do 8 bajtov prostora za shranjevanje. Ta vrsta podatkov daje natančno vrednost, za razliko od enojnih in dvojnih vrst podatkov, o katerih smo že govorili, so zaokrožene. Te so koristne za denarne izračune.
Podatkovni tip valute lahko hrani pozitivne in negativne vrednosti. Ti lahko shranijo 15 števk levo od decimalke in 4 števke desno.
Dovoljeno območje je od -922,337,203,685,477.5808 do 922,337,203,685,477.5807. Z @ lahko prijavite vrste podatkov o valuti.
Sintaksa
Dim VariableName kot valuta
ali
Dim VariableName @
Sub CurrencyDataTypeTest() Dim val1 As Currency Dim Val2@ val1 = 123 Val2 = 333.44 MsgBox ('Data type of Val1 is ' & TypeName(val1) &” with value “ &val1 & ' and datatype of Val2 is ' & TypeName(Val2) & “ with value “ &val2) End Sub
Izhod:
Opomba :Če vrednost spremenljivke presega predvideni obseg za določeno vrsto podatkov, bo vržena napaka pri prelivanju.
Razmislite o preprostem primeru bajtnega podatkovnega tipa, ki presega njegov obseg. Ista napaka bo prikazana, če vnesete negativne vrednosti za bajtni podatkovni tip.
Numerenčni tipi podatkov
To so podatki, s katerimi aritmetični operatorji ne morejo upravljati. Sestavljajo jih besedilo, niz, datum itd. Spodaj so neštevilski podatkovni tipi, ki jih podpira VBA.
Numerenčni tip podatkov | |
---|---|
7. | Varianta (znaki) |
1. | Niz (fiksna dolžina) |
dva | Niz (spremenljiva dolžina) |
3. | Datum |
4. | Logično |
5. | Predmet |
6. | Varianta (številke) |
# 1) Logična vrsta podatkov
Ta podatkovni tip zahteva 2 bajta pomnilnika in lahko shrani samo 2 vrednosti, to je TRUE ali FALSE. Z drugimi besedami, logična spremenljivka lahko dobi samo vrednost TRUE ali FALSE, oziroma 1 ali 0. Privzeta vrednost logične spremenljivke je False.
Syntax – Dim Vname As Boolean
Primer:
Sub BooleanDataTypeTest() Dim bval1 As Boolean MsgBox ('datatype of variable bval1 is :' & TypeName(bval1) & ' default value of boolean varible is ' & bval1) End Sub
# 2) Tip podatkov o datumu
Ta podatkovni tip se uporablja za predstavitev datuma in ure. Ima vrednosti časovnega obdobja od 1. januarja 0100 do 31. decembra 9999, časovne vrednosti pa od 0:00:00 do 23:59:59 in zaseda 8 bajtov velikosti pomnilnika.
Sintaksa: Dim vname As Date
Sub DateDataTypeTest() Dim datetime As Date datetime = Now MsgBox 'Current date and time is ' & datetime End Sub
Opomba: Funkcija Zdaj daje trenutni datum in uro
# 3) Vrsta podatkov niza
Ta podatkovni tip se uporablja za shranjevanje vrednosti niza. Niz je definiran kot zaporedje znakov. Tako lahko za shranjevanje besedila uporabite podatkovni tip String, shranite pa lahko številke, posebne znake, s in prostore dogodkov. Vrednost niza mora biti vdelana v dvojni narekovaj “”.
Obstajata 2 vrsti podatkovnega tipa String.
# 1) Niz s spremenljivo dolžino: Ta vrsta zaseda 10 bajtov velikosti pomnilnika plus pomnilnik, potreben za niz, ki je dolžina niza. Imajo vrednost od 0 do približno 2 milijardi.
# 2) Niz s fiksno dolžino: Zaseda pomnilnik, enak dolžini samega niza. Lahko obsega od 1 do približno 65.400 znakov
Sintaksa: Dim Vname As String
Primer:
Sub StringDataTypeTest() Dim sVal1 As String sVal1 = 'Text1234#$@ and Spaces:)' MsgBox 'I can accept anything ' & sVal1 End Sub
# 4) Vrsta podatkov o objektu
Objekt se bo skliceval na objekt katere koli vrste, tj. Podatkovni tip predmeta lahko kaže na kateri koli podatkovni tip, kot je niz, dvojno, celo število itd. shranjena. Zaseda 4 bajte računalniškega pomnilnika. Privzeta vrednost predmeta je ničelna referenca.
Sintaksa: Dim VName As Object
Primer:
Sub ObjectDataTypeTest() Dim wsActiveSheet As Object Set wsActiveSheet = ActiveSheet wsActiveSheet.UsedRange.Clear End Sub
S tem boste počistili vse uporabljene celice v trenutnem listu.
# 5) Vrsta podatkov o različici
To je univerzalni podatkovni tip VBA, ki lahko sprejme kakršne koli številčne in neštevilske podatke. Različni tip podatkov omogoča večjo prilagodljivost pri delu s podatki. Različni podatkovni tip uporablja več prostora za shranjevanje kot kateri koli drug podatkovni tip. Če ne omenite podatkovnega tipa, bo VBA to obravnaval kot spremenljivko Variant.
Obstajata 2 vrsti podatkovnih tipov Variant
# 1) Varianta (številke): Vsebuje lahko katero koli številsko vrednost do obsega Double. Številke Variant zasedajo 16 bajtov prostora za shranjevanje.
# 2) Varianta (znaki): Ta lahko vsebuje isti obseg kot za niz spremenljive dolžine. Znaki Variant zasedajo 22 bajtov + dolžina niza (24 bajtov v 64-bitnih sistemih)
Sintaksa
Dim VName As Variant
ali
Dim VName
Primer:
Sub VariantDataTypeTest() Dim EmpName As Variant Dim DOB Dim Salary As Variant EmpName = 'Jofn kim' DOB = #10/3/2020# Salary = 55000 MsgBox EmpName & ' ' & DOB & ' ' & Salary End Sub
Pretvorba podatkovnih tipov
Včasih je treba pretvoriti podatkovni tip spremenljivke v nekaj posebnega v našem primeru uporabe.
Primer: Vrednost pridobite iz celice, ki je običajno niz, zato jo morate pred izvajanjem katere koli aritmetične operacije pretvoriti v številčni tip podatkov. Da bi to dosegel, ima VBA funkcije pretvorbe tipa za vse podprte tipe podatkov.
# 1) CBool
Ta funkcija se uporablja za pretvorbo izraza v logični podatkovni tip. Če izraz vrne nič, bo CBool vrnil False, katero koli vrednost, ki ni nič, pa CBool vrne True.
Sub CBooleanTest() Dim val1 As Integer Dim strval2 As String val1 = 0 MsgBox CBool(val1) val1 = 177 MsgBox CBool(val1) strval2 = 'A' MsgBox CBool(strval2 = 'B') MsgBox CBool(strval2 'B') End Sub
Zgornja koda bo vrnila rezultate kot False, True, False, True.
Lahko se preizkusite, narišete nadzorni ukazni gumb ActiveX, z desno tipko miške kliknite -> Prikaži kodo in vstavite zgornjo kodo. Kliknite gumb Ukaz in prikazal se bo rezultat. (Onemogoči način oblikovanja)
Izhod
kaj je datoteka .jnlp
# 2) CByte
Ta funkcija se uporablja za pretvorbo izraza v bajtni podatkovni tip. Po pretvorbi ne pozabite, če obseg presega obseg, dovoljen za bajt, bo vržena napaka Overflow.
Sub cbyteTest() Dim val1 As Double Dim val2 val1 = 125.5678 val2 = CByte(val1) MsgBox ('DataType is ' & TypeName(val2) & ' and value of val2 is ' & val2) End Sub
Opomba: Če vrednost navedete kot 255,56. Izvajalec bo vrnil napako pri prelivanju
# 3) CCur
Ta funkcija bo izraz pretvorila v podatkovni tip valute.
Sub ccurTest() Dim val1 As Integer Dim val2 val1 = 5544 val2 = CCur(val1 / 5) MsgBox ('DataType is ' & TypeName(val2) & ' and value of val2 is ' & val2) End Sub
# 4) CDate
Ta funkcija pretvori niz v datum. Recimo, da vrednost Date pridobite kot niz iz celice excel, nato pa jo morate pred nadaljnjim dejanjem pretvoriti. Uporabite lahko CDate.
Sub CDateTest() Dim val1, val2, val3 As String Dim Res1, Res2, Res3 val1 = '12:21' val2 = '23/09 12:12' val3 = 'Sep 23, 2020' Res1 = CDate(val1) Res2 = CDate(val2) Res3 = CDate(val3) MsgBox 'Date of val1 is : ' & Res1 & ' Date of val2 is : ' & Res2 & ' Date of val3 is ' & Res3 End Sub
# 5) CDbl
Funkcija CDbl se uporablja za pretvorbo izraza v tip podatkov Double.
Sub CDblTest() Dim val1 As String Dim val2 As Integer Dim Res1 val1 = 10000.12345 val2 = 1222.222 Res1 = CDbl(val1) Res2 = CDbl(val2) MsgBox 'Double value after converting String : ' & Res1 & ' Double value after converting Integer : ' & Res2 End Sub
# 6) CDec
Ta funkcija bo pretvorila številsko vrednost v decimalno.
Sub CDecTest() Dim Val1 As Currency Dim Result Val1 = 1234566.56366 Result = CDec(Val1) ‘Result is 1234566.5637 MsgBox 'Decimal Data Type Value : ' & Result End Sub
# 7) CInt
Funkcija CInt bo pretvorila vrednost v celoštevilčni podatkovni tip.
Sub CintTest() Dim Val1 As Double Dim Result Val1 = 2345.5678 Result = CInt(Val1) 'Result is 2346 MsgBox 'Integer value of converting is : ' & Result & ' and datatype of Result is ' & TypeName(Result) End Sub
# 8) CLng
Ta funkcija se uporablja za pretvorbo vrednosti v dolg tip podatkov
Sub cLngTest() Dim Val1, Val2 As Double Dim Res1, Res2 Val1 = 45457.35 Val2 = 45457.65 Res1 = CLng(Val1) Res2 = CLng(Val2) MsgBox 'Result after converting Res1 is ' & Res1 & ' and Res2 value is ' & Res2 End Sub
# 9) CSng
Ta funkcija bo pretvorila vrednost v posamezen podatkovni tip
Sub cSngTest() Dim Val1, Val2 As Double Dim Res1, Res2 Val1 = 75.3421115 Val2 = 75.3421555 Res1 = CSng(Val1) ' Result is 75.34211. Res2 = CSng(Val2) ' Result is 75.34216. MsgBox 'Result after converting Res1 is ' & Res1 & ' and Res2 value is ' & Res2 End Sub
# 10) CStr
Ta funkcija se uporablja za pretvorbo številske vrednosti v niz podatkovnega tipa.
Sub CStrTest() Dim Val1 As Double Dim Result Val1 = 123.123 Result = CStr(Val1) 'Result will be 123.123 MsgBox 'Result of Val1 is ' & Val1 End Sub
# 11) CVar
Ta funkcija bo izraz pretvorila v podatkovni tip Variant.
Sub CVarTest() Dim Val1 As Integer Dim Result Val1 = 1234 Result = CVar(Val1 & 1.12) ' Result will be 12341.12 MsgBox 'Result is ' & Result End Sub
Pogosto zastavljena vprašanja
V # 1) Kakšen je privzeti podatkovni tip v VBA?
Odgovor: Različica je privzeta. Če ne določite podatkovnega tipa spremenljivke, jo VBA obravnava kot različico spremenljivke / predmeta.
V # 2) Kaj je napaka Type Mismatch?
Odgovor: Ta napaka se bo sprožila, ko spremenljivko deklarirate kot en podatkovni tip in dodelite neprimerno vrednost.
Primer: Spremenljivko prijavite kot celo število in vnesite besedilno vrednost.
V # 3) Kako popravim napako pri prelivanju?
Odgovor: Sklicevati se morate na obseg, za katerega je določen tip podatkov dovoljen, in poskrbeti, da vnesete vrednost znotraj dovoljenega obsega.
Primer: Bajt dovoljuje le od 0 do 255, če vnesete katero koli negativno vrednost ali vrednost v več kot 255, potem naletite na napako prelivanja.
Zaključek
V tej vadnici smo spoznali vrste podatkov VBA, to je 7 numeričnih in 7 nenumeričnih podatkovnih vrst. S primeri smo razpravljali tudi o pretvorbi podatkovnega tipa iz enega v drugega.
=> Tukaj si oglejte A-Z vadnic VBA za usposabljanje
Priporočeno branje
- Vadnica za Excel VBA - Uvod v VBA v Excelu
- Vrste podatkov C ++
- Vrste podatkov Python
- Vrste podatkov in spremenljivke C # s primeri
- Vlivanje tipa C #: eksplicitna in implicitna pretvorba podatkov s primerom
- Vrste podatkov matrike - int matrika, dvojna matrika, niz nizov itd.
- Vrste podatkov MySQL | Katere so različne vrste podatkov v MySQL