Funkcja CDEC w VBA
CDEC to wbudowana funkcja konwersji typu danych dostępna jako funkcja VBA. Funkcja VBA CDEC konwertuje typ danych z dowolnego innego typu danych na dziesiętny typ danych. To oznacza „Convert to Decimal”.
Kiedy pracujemy z danymi i prosimy użytkowników o wprowadzenie wartości, może istnieć wiele formatów, w których użytkownik może podać nam wartości, na przykład użytkownik może podać wartości dziesiętne i niedecymalne, funkcja CDEC w VBA pomaga nam przekonwertować dowolną wartość na wartość dziesiętną i jest wbudowaną funkcją programu Excel.

Poniżej znajduje się składnia funkcji CDEC.

Wyrażenie: to nic innego jak wartość, którą próbujemy przekonwertować na typ danych dziesiętnych. Może to być bezpośrednia wartość liczbowa lub zmienna przechowująca wartość liczbową.
- Zanim zobaczymy, jak przekonwertować wartość na dziesiętne typy danych, pozwól mi szczegółowo przedstawić dziesiętne typy danych.
- Typowe numeryczne typy danych, których używamy, to „długie, całkowite i podwójne”. Nie ma specjalnego typu danych, jak „Dziesiętny” do przechowywania długich wartości dziesiętnych. Typy danych Long & Integer konwertują liczbę na liczbę całkowitą, mimo że przypisana jest do nich wartość dziesiętna.
- Tak więc, aby zachować wartości dziesiętne w zmiennych, musimy zadeklarować zmienną jako typ danych „Wariant”. Następnie za pomocą funkcji VBA CDEC możemy dokonać konwersji na typ danych dziesiętnych.
- Aby przechowywać wartości dziesiętne do 14 cyfr, możemy użyć typu danych „Double”, ale używając funkcji konwersji VBA CDEC, możemy zapisać 28 miejsc dziesiętnych.
- Jeśli chodzi o zajęcie pamięci, CDEC zużyje 14 bajtów pamięci systemowej, a ponieważ z góry deklarujemy zmienny typ danych jako „Variant”, wartością zawsze będzie zero.
Przykłady użycia funkcji VBA CDEC
Kilka przykładów zobaczymy w poniższej sekcji artykułu.
Na przykład spójrz na poniższy kod VBA.
Kod:
Sub CDEC_Example () Dim k As Integer k = 2.5698979797646 MsgBox k End Sub
W powyższym przykładzie zadeklarowaliśmy zmienną VBA jako „Integer”, gdy uruchomimy kod, a otrzymamy wartość w oknie komunikatu w VBA, jak poniżej.

Kiedy przypisaliśmy wartość 2,5698979797646 wyników równą 3, dzieje się tak, ponieważ typ danych, który przypisaliśmy do zmiennej to „Integer”, więc przekonwertuje liczbę na najbliższą wartość całkowitą.
Uwaga: Jeśli wartość dziesiętna jest> 0,5, zaokrągli się w górę do następnej wartości całkowitej, a jeśli wartość dziesiętna wynosi <0,51, zaokrągli w dół do wartości poniżej wartości całkowitej.- Ok, teraz pozwól mi przypisać funkcję CDEC, aby przekonwertować wartość typu danych na dziesiętną.
- Jak widać powyżej, przypisałem wartość zmiennej „k” za pomocą funkcji konwersji VBA CDEC.
- Wykonaj kod i zobacz, co otrzymamy.
- Nawet teraz otrzymaliśmy wynik jako trzy ze względu na moment przypisania typu danych Integer i zawsze zaokrągla liczbę do następnej wartości całkowitej.
Tak więc, aby najpierw przypisać typ danych „Decimal”, musimy przypisać typ danych jako „Variant”, a następnie przekonwertować go na Decimal za pomocą funkcji CDEC.
Kod:
Sub CDEC_Example () Dim k As Variant k = CDec (2.5698979797646) MsgBox k End Sub
Teraz wykonaj kod i zobacz, co otrzymamy.

Jeszcze jedna specjalność tego typu danych dziesiętnych polega na tym, że możemy przechowywać więcej niż 14 cyfr dziesiętnych, w przeciwieństwie do typu danych Double, który może zawierać tylko 14 miejsc dziesiętnych.
Teraz wprowadzę więcej niż 14 cyfr do zmiennej w cudzysłowach.
Kod:
Sub CDEC_Example () Dim k As Variant k = CDec ("2.56989797976466769416958") MsgBox k End SubUwaga: wprowadź liczbę w cudzysłowie, ponieważ bez cudzysłowów po 14 cyfrach będzie się ona zaokrąglała. Aby wprowadzić liczby w cudzysłowach.
Teraz uruchom kod i zobacz, co otrzymamy.

Mamy wszystkie liczby dziesiętne, które wpisaliśmy w cudzysłowach.
Rzeczy do zapamiętania
- CDEC oznacza „Convert to Decimal”.
- Akceptuje tylko dane typu „Variant”.
- Nie ma typu danych „Decimal”, ale za pomocą funkcji CDEC możemy łatwo przekonwertować na typ dziesiętny.
- Specjalność polega na tym, że może przechowywać „28” miejsc po przecinku.