VBA CDBL Function

Excel VBA CDBL Function

VBA CDBL is an inbuilt data type conversion function and the use of this function is that it converts the data type of any given variable’s value into a Double data type, this function only takes a single argument which is the value of the variable itself.

In VBA “CDBL” stands for “Convert to Double”. This function converts the given number to Double data type. Take a look at the syntax of the CDBL function.

  • Expression is the value that we are trying to convert to Double data type.

Any floating number which is stored as other than double data type can be converted by applying the CDBL function.

Peka på att komma ihåg här: Endast numeriska värden kan konverteras till dubbel datatyp. Allt annat än numeriskt värde kan inte konverteras till dubbel typ, så sluta visa "Type Mismatch Error in VBA" som nedan.

Har du någonsin använt en dubbel datatyp i VBA-kodning?

Om inte är det värt att titta på det nu. Dubbel är datatypen som används för att lagra decimalpositionen för numret. Vi kan ha upp till 13 flytande decimaltal.

För ett exempel, se nedanstående VBA-kod.

I ovanstående har jag definierat variabeln (k) som heltal. Dim k som heltal

Därefter har jag tilldelat värdet som k = 25.4561248694615

När jag kör koden får vi resultatet enligt följande.

Vi fick resultatet som 25. Eftersom vi har definierat variabeln som heltal VBA-runda till närmaste heltal.

För att visa resultatet som det är måste vi ändra variabeltypen från heltal till dubbel.

Detta borde ge oss det exakta antalet som vi tilldelade variabeln.

Ok, med detta i åtanke kan vi också konvertera alla bråknummer som är lagrade som en icke-dubbel datatyp.

Exempel på användning av VBA CDBL-funktion

Du kan ladda ner denna VBA CDBL-funktionsmall här - VBA CDBL-funktionsmall

Exempel nr 1

För att inleda förfarandet ska vi titta på koden nedan.

Koda:

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

Nu ska jag köra koden och se vad som händer.

Även om VBA-variabeltypen är "Sträng" visar den fortfarande decimalvärdena. Detta beror på att sträng kan vara av vilken typ av datatyp som helst så decimala eller flytande siffror visas som de är.

Nu kommer jag att ändra datatypen från sträng till heltal.

Koda:

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

Nu ska jag köra koden och se vad som händer.

Det är här CDBL-funktionen spelar en viktig roll för att konvertera heltalets datatyp till dubbel. Så nedan är koden densamma för dig.

Koda:

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

Detta konverterar strängdatatypens värde till Double.

Exempel 2

Låt oss nu konvertera numret 854.6947 som lagras som Variant till dubbel datatyp.

Koda:

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

Den första variabeln har jag förklarat som ”Variant”. Dim VaraintNumber

Obs! När variabeln inte deklareras blir den en universell datatyp Variant.

Därefter har jag förklarat en annan variabel, dvs Dim DoubleNumber som Double

För den första variabeln VaraintNumber har vi tilldelat värdet 854.6947.

Nu med den andra variabeln har vi tillämpat CDBL-funktionen för att konvertera Variant-värdet till dubbel datatyp.

DoubleNumber = CDbl (VaraintNumber)

Den sista delen är att visa resultatet i meddelandefältet. MsgBox DoubleNumber

Nu kommer jag att köra koden för att se resultatet.

Saker att komma ihåg

  • En dubbel datatyp kan endast acceptera siffror.
  • Om textvärde anges kommer det att orsaka ett fel i typavvikelsen.
  • En dubbel datatyp kan endast visa 13 siffror med flytande nummer.