Funkce VBA CDBL | Jak převést hodnotu na dvojitý datový typ?
Funkce CDBL aplikace Excel VBA
VBA CDBL je vestavěná funkce převodu datového typu a použití této funkce spočívá v tom, že převádí datový typ hodnoty dané proměnné na datový typ Double, tato funkce trvá pouze jeden argument, což je hodnota samotné proměnné.
Ve VBA znamená „CDBL“ zkratku „Convert to Double“. Tato funkce převádí dané číslo na datový typ Double. Podívejte se na syntaxi funkce CDBL.
- Výraz je hodnota, kterou se snažíme převést na datový typ Double.
Jakékoli plovoucí číslo, které je uloženo jako jiný než dvojitý datový typ, lze převést pomocí funkce CDBL.
Zde si zapamatujte: Na číselný datový typ lze převést pouze číselné hodnoty. Na dvojitý typ nelze převést cokoli jiného než číselnou hodnotu, takže se nakonec zobrazí „Chyba nesouladu typů ve VBA“, jak je uvedeno níže.
Už jste někdy použili dvojitý datový typ v kódování VBA?
Pokud ne, stojí za to se na to nyní podívat. Double je datový typ, který se používá k uložení desítkové polohy čísla. Můžeme mít až 13 plovoucích desetinných čísel.
Například se podívejte na níže uvedený kód VBA.
Ve výše uvedeném jsem definoval typ proměnné (k) jako Integer. Dim k As Integer
Dále jsem přidělil hodnotu jako k = 25.4561248694615
Když spustím kód, dostaneme výsledek následujícím způsobem.
Výsledek jsme dostali jako 25. Protože jsme definovali proměnnou jako celé číslo VBA zaokrouhlené na nejbližší celočíselnou hodnotu.
Abychom ukázali výsledek tak, jak je, musíme změnit typ proměnné z Integer na Double.
To by nám mělo dát přesné číslo, které jsme přiřadili proměnné.
Dobře, s ohledem na to můžeme také převést všechna čísla zlomků, která jsou uložena jako nedvojný datový typ.
Příklady použití funkce VBA CDBL
Tuto šablonu funkce VBA CDBL si můžete stáhnout zde - Šablona funkcí VBA CDBLPříklad č. 1
Pro zahájení řízení se podívejme na níže uvedený kód.
Kód:
Sub Double_Example1 () Dim k As String k = 48.14869569 MsgBox k End Sub
Nyní spustím kód a uvidím, co se stane.
I když je typ proměnné VBA „String“, stále zobrazuje desítkové hodnoty. Důvodem je, že String může být jakéhokoli druhu datového typu, takže desetinná nebo plovoucí čísla se zobrazují tak, jak jsou.
Nyní změním datový typ z řetězce na Integer.
Kód:
Sub Double_Example1 () Dim k As Integer k = 48.14869569 MsgBox k End Sub
Nyní spustím kód a uvidím, co se stane.
To je místo, kde funkce CDBL hraje zásadní roli při převodu celočíselného datového typu na dvojnásobek. Níže uvedený kód je tedy pro vás stejný.
Kód:
Sub Double_Example1 () Dim IntegerNumber As String Dim DoubleNumber As Double IntegerNumber = 48.14869569 DoubleNumber = CDbl (IntegerNumber) MsgBox DoubleNumber End Sub
Tím se převede hodnota datového typu řetězce na Double.
Příklad č. 2
Nyní převeďme číslo 854.6947, které je uloženo jako varianta, na datový typ Double.
Kód:
Sub Double_Example2 () Dim VaraintNumber Dim DoubleNumber As Double VaraintNumber = 854.6947 DoubleNumber = CDbl (VaraintNumber) MsgBox DoubleNumber End Sub
První proměnnou, kterou jsem deklaroval jako „variantu“. Dim VaraintNumber
Poznámka: Pokud typ proměnné není deklarován, stane se z něj univerzální datový typ Variant.
Dále jsem deklaroval jednu další proměnnou, tj. Dim DoubleNumber jako Double
Pro první proměnnou VaraintNumber jsme přiřadili hodnotu jako 854.6947.
Nyní pomocí druhé proměnné jsme použili funkci CDBL k převodu hodnoty Variant na datový typ Double.
DoubleNumber = CDbl (VaraintNumber)
Poslední částí je ukázat výsledek v okně se zprávou. MsgBox DoubleNumber
Nyní spustím kód, abych viděl výsledek.
Věci k zapamatování
- Dvojitý datový typ může přijímat pouze číselná čísla.
- Je-li zadána textová hodnota, způsobí chybu Neshoda typu.
- Dvojitý datový typ může zobrazit pouze 13 číslic pohyblivých čísel.