VBA CDBL -toiminto - Kuinka muuntaa arvo kaksinkertaiseksi tietotyypiksi?

Sisällysluettelo

Excel VBA CDBL -toiminto

VBA CDBL on sisäänrakennettu tietotyypin muunnosfunktio ja tämän toiminnon käyttö on, että se muuntaa minkä tahansa muuttujan arvon tietotyypin Double-tietotyypiksi.Tämä funktio vie vain yhden argumentin, joka on muuttujan arvo.

VBA: ssa "CDBL" tarkoittaa "Muunna kaksinkertaiseksi". Tämä toiminto muuntaa annetun numeron Double-tietotyypiksi. Katsokaa CDBL-toiminnon syntaksia.

  • Lauseke on arvo, jonka yritämme muuntaa Double-tietotyypiksi.

Mikä tahansa kelluva luku, joka on tallennettu muuna kuin kaksoistietotyyppinä, voidaan muuntaa soveltamalla CDBL-toimintoa.

Muista tässä: Vain numeeriset arvot voidaan muuntaa Double-tietotyypiksi. Mitään muuta kuin numeerista arvoa ei voida muuntaa kaksoistyypiksi, joten näytetään lopulta ”Type Mismatch Error in VBA” kuten alla.

Oletko koskaan käyttänyt kaksoistietotyyppiä VBA-koodauksessa?

Jos ei, kannattaa tarkastella sitä nyt. Kaksinkertainen on tietotyyppi, jota käytetään luvun desimaalipaikan tallentamiseen. Meillä voi olla jopa 13 kelluvaa desimaalilukua.

Katso esimerkiksi alla olevaa VBA-koodia.

Edellä on määritelty muuttujan (k) tyyppi kokonaisluvuksi. Dim k kokonaislukuna

Seuraavaksi olen määrittänyt arvon arvoksi k = 25,4561248694615

Kun suoritan koodin, saamme tuloksen seuraavasti.

Saimme tuloksen 25, koska olemme määritelleet muuttujan kokonaislukuna VBA kierroksena lähimpään kokonaislukuun.

Tuloksen näyttämiseksi sellaisenaan meidän on muutettava muuttujan tyyppi kokonaisluvusta kaksinkertaiseksi.

Tämän pitäisi antaa meille tarkka lukumäärä muuttujalle.

Ok, tämä mielessä, voimme myös muuntaa kaikki murtoluvut, jotka ovat varastoja ei-kaksinkertaisena tietotyyppinä.

Esimerkkejä VBA CDBL -toiminnon käytöstä

Esimerkki 1

Aloita menettely katsomalla alla olevaa koodia.

Koodi:

Sub Double_Eample1 () Dim k As String k = 48.14869569 MsgBox k End Sub

Suoritan nyt koodin ja näen mitä tapahtuu.

Vaikka VBA-muuttujatyyppi on "String", se näyttää silti desimaaliarvot. Tämä johtuu siitä, että merkkijono voi olla minkä tahansa tyyppinen tietotyyppi, joten desimaali- tai kelluvat luvut näytetään sellaisenaan.

Nyt vaihdan vba-tietotyypin merkkijonosta kokonaislukuun.

Koodi:

Sub Double_Example1() Dim k As Integer k = 48.14869569 MsgBox k End Sub

Now I will run the code and see what happens.

This is where the CDBL function plays a vital role in converting the integer data type to double. So below code is the same for you.

Code:

Sub Double_Example1() Dim IntegerNumber As String Dim DoubleNumber As Double IntegerNumber = 48.14869569 DoubleNumber = CDbl(IntegerNumber) MsgBox DoubleNumber End Sub

This will convert the string data type value to Double.

Example #2

Now let’s convert the number 854.6947, which is stored as Variant to Double data type.

Code:

Sub Double_Example2() Dim VaraintNumber Dim DoubleNumber As Double VaraintNumber = 854.6947 DoubleNumber = CDbl(VaraintNumber) MsgBox DoubleNumber End Sub

The first variable I have declared as “Variant.” Dim VaraintNumber

Huomaa: Kun muuttujatyyppiä ei ilmoiteta, siitä tulee universaali tietotyyppi Variant.

Seuraavaksi olen ilmoittanut vielä yhden muuttujan, eli Dim DoubleNumber Double.

Ensimmäiselle muuttujalle, VaraintNumber, olemme määrittäneet arvon 854.6947.

Nyt käyttämällä toista muuttujaa, olemme käyttäneet CDBL-toimintoa muunnellaksemme Variant-arvon Double-tietotyypiksi.

DoubleNumber = CDbl (Varanumero)

Viimeinen osa on näyttää tulos viestikentässä. MsgBox DoubleNumber

Suoritan nyt koodin nähdäksesi tuloksen.

Muistettavaa

  • Kaksinkertainen tietotyyppi voi hyväksyä vain numeerisia numeroita.
  • Jos tekstiarvo annetaan, se aiheuttaa tyypin ristiriidan virheen.
  • Kaksinkertainen tietotyyppi voi näyttää vain 13 numeroa kelluvia numeroita.

Mielenkiintoisia artikkeleita...