VBA CDBL funkcija | Kaip konvertuoti vertę į dvigubą duomenų tipą?

„Excel VBA CDBL“ funkcija

VBA CDBL yra integruota duomenų tipo konvertavimo funkcija, o šios funkcijos naudojimas yra tai, kad ji paverčia bet kurio nurodyto kintamojo vertės duomenų tipą dvigubu duomenų tipu. Ši funkcija reikalauja tik vieno argumento, kuris yra paties kintamojo vertė.

VBA „CDBL“ reiškia „Konvertuoti į dvigubą“. Ši funkcija paverčia nurodytą skaičių į Double data tipą. Pažvelkite į CDBL funkcijos sintaksę.

  • Išraiška yra vertė, kurią bandome konvertuoti į dvigubo tipo duomenis.

Bet kurį slankųjį skaičių, kuris saugomas kaip dvigubas duomenų tipas, galima konvertuoti pritaikius CDBL funkciją.

Nurodykite čia, kad prisimintumėte: dvigubų duomenų tipą galima konvertuoti tik skaitinėmis reikšmėmis. Nieko, išskyrus skaitinę vertę, negalima konvertuoti į dvigubą tipą, todėl galų gale rodoma „Tipo neatitikimo klaida VBA“, kaip nurodyta toliau.

Ar kada nors naudojote dvigubą duomenų tipą VBA koduodami?

Jei ne, verta dabar tai pažvelgti. Dvigubas yra duomenų tipas, naudojamas įrašyti dešimtainę skaičiaus vietą. Mes galime turėti iki 13 kintančių dešimtainių skaičių.

Pavyzdžiui, pažvelkite į žemiau esantį VBA kodą.

Pirmiau aš apibrėžiau kintamojo (k) tipą kaip Sveikasis skaičius. Dim k As Sveikasis skaičius

Tada priskyriau vertę kaip k = 25,4561248694615

Kai paleisiu kodą, rezultatą gausime taip.

Rezultatą gavome kaip 25. Kadangi kintamąjį apibrėžėme kaip Sveikasis skaičius VBA apvalinamas iki artimiausios sveikojo skaičiaus vertės.

Norėdami parodyti tokį rezultatą, koks yra kintamojo tipas, jis turi būti pakeistas iš Sveikasis į Dvigubas.

Tai turėtų mums suteikti tikslų skaičių, kurį priskyrėme kintamajam.

Gerai, turėdami tai omenyje, mes taip pat galime konvertuoti visus trupmenos skaičius, kurie yra saugomi, kaip dvigubą duomenų tipą.

VBA CDBL funkcijos naudojimo pavyzdžiai

Šį VBA CDBL funkcijų šabloną galite atsisiųsti čia - VBA CDBL funkcijų šabloną

1 pavyzdys

Norėdami pradėti procesą, pažvelkime į žemiau pateiktą kodą.

Kodas:

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

Dabar paleisiu kodą ir pažiūrėsiu, kas bus.

Nors VBA kintamojo tipas yra „String“, jis vis tiek rodo dešimtaines reikšmes. Taip yra todėl, kad eilutė gali būti bet kokio tipo duomenų, todėl dešimtainiai arba slankieji skaičiai rodomi tokie, kokie yra.

Dabar pakeisiu duomenų tipą iš eilutės į sveikąjį.

Kodas:

 Dvigubas_pavyzdys1 () Dim k As Sveikasis k = 48.14869569 MsgBox k End Sub 

Dabar paleisiu kodą ir pažiūrėsiu, kas bus.

Čia CDBL funkcija vaidina gyvybiškai svarbų vaidmenį, norint konvertuoti sveikojo skaičiaus duomenų tipą į dvigubą. Taigi žemiau kodas jums yra tas pats.

Kodas:

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

Tai pavers eilutės duomenų tipo vertę į Dviguba.

2 pavyzdys

Dabar paverskime skaičių 854.6947, kuris saugomas kaip Variant, į dvigubą duomenų tipą.

Kodas:

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

Pirmasis kintamasis, kurį paskelbiau „variantu“. Dim VaraintNumber

Pastaba: Kai kintamojo tipas nėra deklaruojamas, jis tampa universaliu duomenų tipu Variant.

Tada aš paskelbiau dar vieną kintamąjį, ty „Dim DoubleNumber“ kaip dvigubą

Pirmojo kintamojo „ VaraintNumber “ reikšmę priskyrėme 854,6947.

Dabar, naudodami antrąjį kintamąjį, pritaikėme CDBL funkciją, kad Variant reikšmė būtų konvertuota į Double duomenų tipą.

„DoubleNumber“ = CDbl („VaraintNumber“)

Paskutinė dalis - parodyti rezultatą pranešimų laukelyje. „MsgBox DoubleNumber“

Dabar paleisiu kodą norėdamas pamatyti rezultatą.

Ką reikia atsiminti

  • Dvigubas duomenų tipas gali priimti tik skaitmeninius skaičius.
  • Jei pateikiama teksto reikšmė, tai sukels tipo neatitikimo klaidą.
  • Dvigubas duomenų tipas gali rodyti tik 13 slankiųjų skaičių skaitmenų.

$config[zx-auto] not found$config[zx-overlay] not found