Funkcja VBA CDBL - Jak przekonwertować wartość na podwójny typ danych?

Spisie treści

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 jest wartością, 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. Cokolwiek innego niż wartość liczbowa nie może zostać przekonwertowane na podwójny typ, więc w końcu pojawia się komunikat „Błąd niezgodności typu w języku VBA”, jak poniżej.

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

Jeśli nie, to już teraz warto 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

Kiedy uruchomię kod, otrzymamy następujący wynik.

Otrzymaliśmy wynik jako 25, ponieważ zdefiniowaliśmy zmienną jako Integer VBA round 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.

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

Przykład 1

Aby rozpocząć postępowanie, 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 vba 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łkowitoliczbowych 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 Wariant.

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

Do 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.
  • Jeśli podano wartość tekstową, spowoduje to błąd niezgodności typu.
  • Podwójny typ danych może wyświetlać tylko 13 cyfr liczb zmiennoprzecinkowych.

Interesujące artykuły...