vba data types numeric
Ovaj vodič objašnjava razne numeričke i ne-numeričke vrste podataka dostupne u VBA-u. Također ćemo naučiti o pretvorbi tipova podataka :
Svakodnevno nailazimo na mnoge vrste podataka kao što su ime, datum, računi, cijena robe itd. Svi ti podaci pripadaju određenoj vrsti i njihove vrijednosti ne mogu se razlikovati od vrste koja joj je pridružena. Slično tome, VBA ima mnogo vrsta podataka koji se koriste za izvođenje potrebne radnje.
U ovom uputstvu naučit ćemo različite vrste podataka koji se koriste u VBA-u i vidjeti kako će oni pomoći u organizaciji našeg programa. Također ćemo razmotriti pretvaranje jednog tipa podataka u drugi tip podataka.
=> Ovdje provjerite SVE VBA vodiče
Što ćete naučiti:
- Kategorije tipova podataka
- Zaključak
Kategorije tipova podataka
Vrsta podataka računalu govori o vrsti podataka koje treba pohraniti pomoću varijable. Tipovi podataka podijeljeni su u 2 kategorije, tj. Numeričke i ne-numeričke vrste podataka
Numerički tipovi podataka
Te se vrste koriste za izvođenje matematičkih operacija poput Zbrajanja, Oduzimanja itd. Primjer, izračun postotka, cijena dionice, naknade, računi, dob itd.
U VBA postoji 7 vrsta numeričkih vrsta podataka kako je spomenuto u nastavku.
Numerički tip podataka | |
---|---|
7 | Decimal |
1 | Bajt |
dva | Cijeli broj |
3 | Dugo |
4 | Singl |
5 | Dvostruko |
6 | Valuta |
Kratko ćemo pogledati sve numeričke tipove podataka.
# 1) Tip podataka bajta
Ova vrsta podataka zahtijeva samo jedan bajt memorije. Varijable s tipom podataka Bajt može pohraniti vrijednosti od 0 do 255. Zadana vrijednost bajta je 0. Negativne vrijednosti i vrijednosti veće od 255 nisu dopuštene. U slučaju da pokušate dodijeliti nevaljane vrijednosti, vratit će se pogreška Preljev.
Sintaksa: Dim Vname kao bajt
Ovdje je Vname naziv varijable, a Byte je vrsta podataka varijable.
Primjer:
Sub ByteDTtest() Dim vname1 As Byte vname1 = 10 MsgBox 'Value of vname1 is : “ &vname1 End Sub
Izlaz je dan u nastavku
# 2) Cjelobrojni tip podataka
Ti se tipovi podataka koriste za pohranu cijele cijele vrijednosti. Ovo zauzima 2 bajta memorije. Cijeli broj jedna je od često korištenih vrsta podataka. Prihvaćaju i pozitivne vrijednosti, negativne vrijednosti i nulu. Imaju raspon između -32.768 i 32.767.
Sintaksa: Dim se pali kao cijeli broj
Primjer:
Sub IntDTtest() Dim vname1, vname2 As Integer vname1 = 10 vname2 = -20 MsgBox 'Value of Integer variable is ' & vname1 & ' and ' & vname2 End Sub
Izlaz je dan u nastavku
# 3) Dugi tip podataka
Ovo je alternativa cjelobrojnom tipu podataka koji također pohranjuje cijelu cijelu vrijednost. Međutim, zauzima više memorije od cjelobrojne varijable koja iznosi 4 bajta. Ima raspon vrijednosti 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
Ako izvršite gornji kôd s cjelobrojnom varijablom, dobit ćete pogrešku prelijevanja, jer u Excelu postoji 1048576 redaka, a vrsta podataka tipa Integer podržava samo do 32.767. Kao što je prikazano u nastavku kada je vrsta podataka dugačka, prikazuje se odgovarajući rezultat.
Ali kada je vrsta podataka cijeli broj, tada se pojavljuje pogreška prelijevanja.
kako otvoriti jar datoteku s Java -
# 4) Decimalni tip podataka
Ovo je točan numerički tip podataka koji se koristi za njegovu preciznost. To je ukupan broj znamenki i broj znamenki desno od decimalne točke koja se naziva faktor skaliranja.
U VBA brojevi se skaliraju snagom 10. Prikladno je koristiti ove vrste dok manipulirate velikim brojevima koji trebaju preciznu vrijednost. Ovo zauzima 14 bajtova u memoriji.
Ali varijable se ne mogu izravno deklarirati kao decimalni tip podataka. Da biste koristili decimalu, morate koristiti funkciju pretvorbe CDec. Morate koristiti tip podataka Variant.
Ova vrsta podataka sadrži donji raspon vrijednosti.
+/- 79.228.162.514.264.337.593.543.950.335 bez decimalne točke
+/- 7.9228162514264337593543950335 s 28 decimalnih mjesta desno od decimale.
Najmanja prihvaćena vrijednost koja nije nula je +/- 0,0000000000000000000000000001.
Sintaksa: Dim se pali kao varijanta
Sub DecimalDataTypeTest() Dim DecValue As Variant DecValue = CDec(1000.4560323034) MsgBox 'Data type of Decvalue variable is : ' & TypeName(DecValue) & ' value ' & DecValue End Sub
Bilješka: Funkcija TypeName dat će naziv tipa podataka
Izlaz:
# 5) Jedan tip podataka
Ovaj se tip podataka koristi za pohranu brojeva s pomičnom zarezom s jednom preciznošću. Zauzima 4 bajta memorije. Zadana vrijednost je 0 i pohranjuje decimalne vrijednosti. Možete upotrijebiti znak uzvika (!) Dok deklarirate varijablu kao što je prikazano u sintaksi dolje.
Prihvaćeni raspon vrijednosti su:
3.402823E38 do -1.401298E-45 za negativne vrijednosti
1.401298E-45 do 3.402823E38 za pozitivne vrijednosti.
Sintaksa
Dim VariableName kao Single
ili
Prigušeno ime varijable!
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) Dvostruki tip podataka
Podaci Double VBA mogu se koristiti za držanje i cijelih brojeva i razlomaka. Double se koristi za pohranu brojeva s dvostrukom preciznošću s pomičnim zarezom. Zauzima 8 bajtova memorije i ima niz vrijednosti.
-1,79769313486231E308 do -4,94065645841247E-324 za negativne vrijednosti
4.94065645841247E-324 do 1.79769313486232E308 za pozitivne vrijednosti
Kao i pojedinačni tip podataka, i double se može deklarirati pomoću simbola Hash (#) kao što je prikazano dolje.
Sintaksa
Dim VariableName kao Double
ili
Dim VariableName #
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 podataka o valuti
Ova vrsta podataka može potrajati do 8 bajta veličine pohrane. Ova vrsta podataka daje točnu vrijednost, za razliku od pojedinačnih i dvostrukih vrsta podataka o kojima smo već razgovarali su zaokružene. Oni su korisni za novčane izračune.
Vrsta podataka valute može pohraniti i pozitivne i negativne vrijednosti. Oni mogu pohraniti 15 znamenki lijevo od decimalne i 4 znamenke desno.
algoritam sortiranja umetanja c ++
Dopušteni raspon je od -922,337,203,685,477.5808 do 922,337,203,685,477.5807. Možete koristiti @ za deklariranje vrsta podataka valute.
Sintaksa
Dim VariableName kao valuta
ili
Prigušeno ime varijable @
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
Izlaz:
Bilješka :Ako vrijednost varijable premaši predviđeni raspon za određenu vrstu podataka, pojavit će se pogreška preljeva.
Razmotrimo jednostavan primjer bajtnog tipa podataka koji prelazi njegov raspon. Ista pogreška prikazat će se ako unesete negativne vrijednosti za bajt tip podataka.
Nenumerički tipovi podataka
To su podaci kojima ne mogu upravljati aritmetički operatori. Sastoje se od teksta, niza, datuma itd. Dolje su navedeni ne-numerički tipovi podataka podržani u VBA.
Nenumerički tip podataka | |
---|---|
7 | Varijanta (znakovi) |
1 | Niz (fiksna duljina) |
dva | Niz (promjenjiva duljina) |
3 | Datum |
4 | Booleova |
5 | Objekt |
6 | Varijanta (brojevi) |
# 1) logički tip podataka
Ova vrsta podataka zahtijeva 2 bajta memorije i može pohraniti samo 2 vrijednosti, tj. TRUE ili FALSE. Drugim riječima, logička varijabla može dobiti samo vrijednost TRUE ili FALSE, alternativno 1 ili 0. Zadana vrijednost logičke varijable je False.
Sintaksa - Dim Vname kao Boolean
Primjer:
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 podataka datuma
Ova vrsta podataka koristi se za predstavljanje datuma i vremena. Ima vrijednosti datumskog raspona od 1. siječnja 0100. do 31. prosinca 9999, a vremenske vrijednosti od 0:00:00 do 23:59:59 i zauzima 8 bajtova veličine pohrane.
Sintaksa: Dim se pali kao datum
Sub DateDataTypeTest() Dim datetime As Date datetime = Now MsgBox 'Current date and time is ' & datetime End Sub
Bilješka: Funkcija Now daje trenutni datum i vrijeme
# 3) Vrsta podataka niza
Ova vrsta podataka koristi se za pohranu vrijednosti niza. Niz je definiran kao niz znakova. Tako možete koristiti vrstu podataka String za spremanje teksta, a možete koristiti za pohranu brojeva, posebnih znakova, s i prostora događaja. Vrijednost niza treba biti ugrađena u dvostruke navodnike “”.
Postoje 2 vrste vrste podataka String.
# 1) Niz promjenljive duljine: Ovaj tip zauzima 10 bajta veličine memorije plus memorija potrebna za niz koji je duljina niza. Vrijednost im je od 0 do otprilike 2 milijarde.
# 2) Niz fiksne duljine: Zauzima memoriju jednaku duljini samog niza. Može se kretati od 1 do približno 65.400 znakova
Sintaksa: Zatamni Vname kao niz
Primjer:
Sub StringDataTypeTest() Dim sVal1 As String sVal1 = 'Text1234#$@ and Spaces:)' MsgBox 'I can accept anything ' & sVal1 End Sub
# 4) Vrsta podataka o objektu
Objekt će imati referencu na objekt bilo kojeg tipa, tj. Tip podataka objekta može upućivati na bilo koji tip podataka kao što su string, double, integer itd. pohranjeni. Zauzima 4 bajta računalne memorije. Zadana vrijednost objekta je nula referenca.
Sintaksa: Zatamni VName kao objekt
Primjer:
Sub ObjectDataTypeTest() Dim wsActiveSheet As Object Set wsActiveSheet = ActiveSheet wsActiveSheet.UsedRange.Clear End Sub
Ovo će očistiti sve korištene ćelije u trenutnom listu.
# 5) Tip podataka varijante
Ovo je univerzalni tip podataka VBA, može prihvatiti bilo koju vrstu numeričkih i ne-numeričkih podataka. Različiti tip podataka daje veću fleksibilnost tijekom rada s podacima. Različiti tip podataka koristi veću veličinu pohrane od bilo kojeg drugog tipa podataka. Ako ne spomenete tip podataka, VBA će ga tretirati kao varijablu Variant.
Postoje 2 vrste tipova podataka Variant
# 1) Varijanta (brojevi): To može sadržavati bilo koju numeričku vrijednost do raspona Double. Brojevi Variant zauzimaju 16 bajta veličine pohrane.
# 2) Varijanta (znakovi): To može sadržavati isti raspon kao za niz promjenljive duljine. Znakovi Variant zauzimaju 22 bajta + duljina niza (24 bajta na 64-bitnim sustavima)
Sintaksa
Zatamni VName kao varijantu
ili
Dim VName
Primjer:
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 tipa podataka
Ponekad je potrebno pretvoriti vrstu podataka varijable u nešto specifično u našem slučaju korištenja.
Primjer: Vrijednost dohvaćate iz ćelije, koja je obično niz, i stoga je morate pretvoriti u numerički tip podataka prije izvođenja bilo koje aritmetičke operacije. Da bi se to postiglo, VBA ima funkcije pretvorbe tipa za sve podržane tipove podataka.
# 1) CBool
Ova se funkcija koristi za pretvaranje izraza u logički tip podataka. Ako izraz vrati nulu, tada će CBool vratiti False, bilo koja različita od nule vrijednost, CBool vraća 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
Gornji kod vratit će rezultate kao False, True, False, True.
Možete se isprobati, nacrtati kontrolni gumb ActiveX, desni klik -> Prikaz koda i umetnuti gornji kôd. Pritisnite gumb Command i rezultat će se prikazati. (Onemogući način dizajna)
Izlaz
# 2) CByte
Ova se funkcija koristi za pretvaranje izraza u bajtni tip podataka. Zapamtite nakon pretvorbe ako raspon premašuje raspon dopušten za bajt, tada će se pojaviti pogreška preljeva.
što je dobar blokator oglasa
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
Bilješka: Ako vrijednost date kao 255,56. Sukladnik će vratiti pogrešku preljeva
# 3) CCur
Ova će funkcija pretvoriti izraz u vrstu podataka 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
Ova će funkcija pretvoriti niz u datum. Pretpostavimo da vrijednost Date dohvatite kao niz iz excelove ćelije, a zatim je morate pretvoriti prije izvođenja bilo kakvih daljnjih radnji. Možete koristiti 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 koristi se za pretvaranje izraza u tip podataka 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
Ova će funkcija pretvoriti numeričku vrijednost u decimalnu.
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 pretvorit će vrijednost u integrirani tip podataka.
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
Ova se funkcija koristi za pretvaranje vrijednosti u dugi tip podataka
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
Ova će funkcija pretvoriti vrijednost u jedinstveni tip podataka
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
Ova se funkcija koristi za pretvaranje numeričke vrijednosti u vrstu podataka niza.
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
Ova će funkcija pretvoriti izraz u tip podataka 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
Često postavljana pitanja
P # 1) Koji je zadani tip podataka u VBA?
Odgovor: Varijanta je zadana. Ako ne definirate vrstu podataka varijable, tada je VBA tretira kao varijablu varijable / objekta.
P # 2) Što je pogreška neusklađenosti tipa?
Odgovor: Ova će se pogreška pokrenuti kada varijablu deklarirate kao jedan tip podataka i dodijelite neprikladnu vrijednost.
Primjer: Deklarirajte varijablu kao Integer i unesite tekstualnu vrijednost.
P # 3) Kako popraviti pogrešku prelijevanja?
Odgovor: Morate se pozvati na raspon kojem je dopuštena određena vrsta podataka i unesite vrijednost unutar dopuštenog raspona.
Primjer: Bajt dopušta samo 0 do 255, ako unesete negativnu vrijednost ili v vrijednost veću od 255, tada naiđete na pogrešku prelijevanja.
Zaključak
U ovom uputstvu naučili smo o VBA tipovima podataka, tj. 7 numeričkih i 7 nenumeričkih tipova podataka. Također smo na primjerima razgovarali o tome kako pretvoriti vrstu podataka iz jedne vrste u drugu.
=> Ovdje pogledajte kako biste vidjeli A-Z VBA vodiča za trening
Preporučena literatura
- Vodič za Excel VBA - Uvod u VBA u programu Excel
- Vrste podataka C ++
- Python tipovi podataka
- Vrste podataka i varijable C # s primjerima
- Lijevanje tipa C #: eksplicitna i implicitna pretvorba podataka s primjerom
- Tipovi podataka niza - int niz, dvostruki niz, niz žica itd.
- Vrste podataka MySQL | Koje su različite vrste podataka u MySQL-u