CDEC funkció a VBA-ban
A CDEC egy beépített adattípus-átalakító függvény, amely VBA funkcióként érhető el. A VBA CDEC függvény átalakít egy adattípust bármely más adattípusból tizedes adattípussá. A „Convert to Decimal” rövidítése.
Amikor egy adattal dolgozunk, és arra kérjük a felhasználókat, hogy adják meg az értékeket, akkor számos formátum lehet, amelyben a felhasználó értékeket adhat meg nekünk, például a felhasználó megadhat egy tizedes értéket és egy nem decimális értéket, a CDEC függvény A VBA segít bármilyen értéket decimálissá konvertálni, és ez egy beépített függvény az excelben.
Az alábbiakban a CDEC függvény szintaxisa található.
Kifejezés: Ez nem más, mint az az érték, amelyet megpróbálunk átalakítani tizedes adattípussá. Ez lehet egy közvetlen numerikus érték vagy egy változó, amely a numerikus értéket tartja.
- Mielőtt látnánk, hogyan lehet az értéket tizedes adattípusokká konvertálni, hadd részletesen ismertessem a tizedes adattípust.
- Az általánosan használt numerikus adattípusok a „hosszú, egész és kettős”. A hosszú tizedesértékek megtartására nincs speciális adattípus, mivel a „Tizedes”. A hosszú és egész szám adattípusok konvertálják a számot egész számra, annak ellenére, hogy a tizedes értéket hozzárendelik hozzájuk.
- Tehát, hogy a tizedes értékeket tároljuk a változókhoz, a változót „Változat” adattípusként kell deklarálnunk. Ezután a VBA CDEC függvény segítségével átalakíthatunk tizedes adattípussá.
- A tizedesértékek legfeljebb 14 jegyű tárolásához használhatjuk a „Double” adattípust, de a VBA CDEC konverziós funkció használatával 28 tizedesjegyet tárolhatunk.
- Ha a memória elfoglalásáról van szó, a CDEC 14 bájtot fog felemészteni a rendszermemóriából, és mivel a változó adattípust eleve „Variánsnak” deklaráljuk, az érték mindig nulla lesz.
Példák a VBA CDEC függvény használatára
Néhány példát a cikk alábbi szakaszában láthatunk.
Nézze meg például az alábbi VBA kódot.
Kód:
CDEC_Example () Dim k As Integer k = 2.5698979797646 MsgBox k End Sub
A fentiekben a kód futtatásakor a VBA változót „Integer” néven deklaráltuk, és az alábbiak szerint megkapjuk az értéket a VBA üzenetmezőjében.
Amikor a 2.5698979797646 eredmények 3 értéket rendeltünk , ez azért van, mert a változóhoz rendelt adattípus „Egész”, így a számot a legközelebbi egész értékre konvertálja.
Megjegyzés: Ha a tizedesérték> 0,5, akkor felfelé kerekít a következő egész számra, és ha a tizedesérték <0,51, akkor lefelé kerekít egész szám alatti értékre.- Ok, most engedje meg, hogy hozzárendeljem a CDEC függvényt az adattípus értékének tizedesre konvertálásához.
- Amint a fentiekből látható, a VBA CDEC konverziós függvény segítségével értéket rendeltem a „k” változóhoz.
- Végezze el a kódot, és nézze meg, mit kapunk.
- Az eredményt most is hárman kaptuk a pillanatnyi egész szám adattípus miatt, és ez mindig a következő egész számra kerekíti a számot.
Tehát ahhoz, hogy először a „Decimal” adattípust rendelhessük, az adattípust „Variant” -ként kell kijelölnünk, majd a CDEC függvény segítségével decimálissá kell konvertálnunk.
Kód:
CDEC_Example () Dim k As Variant k = CDec (2.5698979797646) MsgBox k End Sub
Most hajtsa végre a kódot, és nézze meg, mit kapunk.
Ennek a tizedes adattípusnak még egy különlegessége, hogy több mint 14 jegyű tizedesértéket tárolhatunk, ellentétben a Double adattípussal, amely csak 14 tizedesjegyet képes befogadni.
Most több mint 14 számjegyet írok be a változóba dupla idézőjelben.
Kód:
CDEC_Example () Dim k As Variant k = CDec ("2.56989797976466769416958") MsgBox k End SubMegjegyzés: Írja be a számot dupla idézőjelbe, mert a 14 számjegy után kettős idézőjel nélkül továbbra is kerekíteni fog. Számok dupla idézőjelekbe írása.
Most futtassa a kódot, és nézze meg, mit kapunk.
Megvan az összes tizedesjegy, amelyet a dupla idézőjelek közé írtunk be.
Dolgok, amikre emlékezni kell
- A CDEC jelentése „Convert to Decimal”.
- Csak a „Változat” adattípust fogadja el.
- Nincs „Decimális” adattípus, de a CDEC függvény használatával könnyen átválthatunk decimális adattípussá.
- Különlegesség, hogy „28” számjegyű tizedesjegyeket tartalmazhat.