Funkcja VBA CDBL

Funkcja Excel VBA CDBL

VBA CDBL jest wbudowaną funkcją konwersji typu danych, a jej zastosowanie polega na tym, że konwertuje ona typ danych dowolnej wartości zmiennej na typ danych Double, ta funkcja przyjmuje tylko jeden argument, który jest wartością samej zmiennej.

W języku VBA „CDBL” oznacza „Convert to Double”. Ta funkcja konwertuje podaną liczbę na typ danych Double. Spójrz na składnię funkcji CDBL.

  • Wyrażenie to wartość, którą próbujemy przekonwertować na typ danych Double.

Każda liczba zmiennoprzecinkowa, która jest przechowywana jako inny typ danych niż podwójny, może zostać przekonwertowana przez zastosowanie funkcji CDBL.

Wskaż tutaj do zapamiętania: tylko wartości liczbowe mogą być konwertowane na typ danych Double. Czegokolwiek innego niż wartość liczbowa nie może zostać przekonwertowane na typ podwójny, więc w końcu pojawia się komunikat „Błąd niezgodności typu w VBA”, jak poniżej.

Czy kiedykolwiek używałeś podwójnego typu danych w kodowaniu VBA?

Jeśli nie, to warto teraz się temu przyjrzeć. Double to typ danych używany do przechowywania pozycji dziesiętnej liczby. Możemy mieć do 13 zmiennoprzecinkowych liczb dziesiętnych.

Na przykład spójrz na poniższy kod VBA.

Powyżej zdefiniowałem typ zmiennej (k) jako Integer. Dim k As Integer

Następnie przypisałem wartość k = 25,4561248694615

Po uruchomieniu kodu otrzymamy następujący wynik.

Otrzymaliśmy wynik jako 25. Ponieważ zdefiniowaliśmy zmienną jako Integer VBA zaokrąglając do najbliższej wartości całkowitej.

Aby pokazać wynik taki, jaki jest, musimy zmienić typ zmiennej z Integer na Double.

Powinno to dać nam dokładną liczbę, jaką przypisaliśmy do zmiennej.

OK, mając to na uwadze, możemy również przekonwertować wszystkie liczby ułamkowe, które są przechowywane jako typ danych inny niż double.

Przykłady użycia funkcji VBA CDBL

Możesz pobrać ten szablon funkcji VBA CDBL tutaj - szablon funkcji VBA CDBL

Przykład 1

Aby rozpocząć procedurę, spójrzmy na poniższy kod.

Kod:

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

Teraz uruchomię kod i zobaczę, co się stanie.

Mimo że typ zmiennej VBA to „String”, nadal wyświetla wartości dziesiętne. Dzieje się tak, ponieważ String może być dowolnego typu danych, więc liczby dziesiętne lub zmiennoprzecinkowe są wyświetlane bez zmian.

Teraz zmienię typ danych z string na Integer.

Kod:

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

Teraz uruchomię kod i zobaczę, co się stanie.

W tym miejscu funkcja CDBL odgrywa istotną rolę w konwersji typu danych całkowitych na podwójne. Więc poniższy kod jest taki sam dla Ciebie.

Kod:

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

Spowoduje to przekonwertowanie wartości typu danych ciągu na Double.

Przykład nr 2

Teraz przekonwertujmy liczbę 854.6947, która jest przechowywana jako typ danych Variant, na typ danych Double.

Kod:

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

Pierwsza zmienna, którą zadeklarowałem jako „wariant”. Dim VaraintNumber

Uwaga: Gdy typ zmiennej nie jest zadeklarowany, staje się uniwersalnym typem danych Variant.

Następnie zadeklarowałem jeszcze jedną zmienną, tj. Dim DoubleNumber As Double

Pierwszej zmiennej VaraintNumber przypisaliśmy wartość 854.6947.

Teraz, używając drugiej zmiennej, zastosowaliśmy funkcję CDBL, aby przekonwertować wartość Variant na typ danych Double.

DoubleNumber = CDbl (VaraintNumber)

Ostatnią częścią jest pokazanie wyniku w oknie komunikatu. MsgBox DoubleNumber

Teraz uruchomię kod, aby zobaczyć wynik.

Rzeczy do zapamiętania

  • Podwójny typ danych może akceptować tylko liczby liczbowe.
  • Podanie wartości tekstowej spowoduje błąd niezgodności typu.
  • Podwójny typ danych może wyświetlać tylko 13 cyfr liczb zmiennoprzecinkowych.