Podwójny typ danych Excel VBA
VBA Double to rodzaj danych, które przypisujemy do deklarowania zmiennych, który jest ulepszoną lub dłuższą wersją zmiennej typu danych „Single” i jest zwykle używany do przechowywania dłuższych miejsc dziesiętnych.
VBA Typ danych Integer zawsze konwertuje wartości dziesiętne na najbliższą wartość całkowitą. Pojedynczy typ danych może zawierać do dwóch cyfr po przecinku. Z drugiej strony typ danych „Double” może przechowywać wartości od -1,79769313486231E308 do -4,94065645841247E324 dla wartości ujemnych, a dla liczb dodatnich może przechowywać wartości od 4,94065645841247E-324 do 1,79769313486232E308 .
Co ważniejsze, zużywa 8 bajtów pamięci.

Przykłady użycia podwójnego typu danych VBA
Przykład 1
Zanim zobaczymy przykład typu danych „Double”, spójrzmy na przykładowe kody typu danych „Integer” i „Single” w VBA. Spójrz na poniższy kod VBA.
Kod:
Sub Integer_Ex () Dim k As Integer k = 2,569999947164 MsgBox k End Sub

Zadeklarowałem zmienną „k” jako liczbę całkowitą i dla tej zmiennej przypisałem wartość 2,569999947164.
Uruchommy ten kod ręcznie lub za pomocą klawisza skrótu F5 programu Excel, aby zobaczyć ostateczną wartość w oknie komunikatu w VBA.

Wynik jest wyświetlany jako 3 zamiast podanej liczby 2,569999947164. Powód, ponieważ VBA przekonwertował liczbę na najbliższą wartość całkowitą, tj. 3.
Gdy wartość dziesiętna jest większa niż 0,5, zostanie przekonwertowana na następną wartość całkowitą, a gdy wartość dziesiętna jest mniejsza niż 0,51, zostanie przekonwertowana na wartość poniżej wartości całkowitej.
Teraz zmienię typ danych z Integer na Single.
Kod:
Sub Integer_Ex () Dim k As Single k = 2.569999947164 MsgBox k End Sub

Uruchom kod za pomocą klawisza skrótu F5 i zobacz, jaki numer otrzymamy tym razem.

Tym razem otrzymaliśmy wynik 2,57, czyli tym razem dwa miejsca po przecinku. Pierwotna wartość, którą przypisaliśmy, to 2,569999947164, więc w tym przypadku trzecia wartość dziesiętna to 9, więc ponieważ jest to więcej niż 5, przekonwertowała wartość dziesiętną z 6 na 7 na drugim miejscu.
Teraz zmień typ danych z Single na Double.
Kod:
Sub Integer_Ex () Dim k As Double k = 2.569999947164 MsgBox k End Sub

Teraz uruchom kod ręcznie i zobacz, ile cyfr otrzymamy w wyniku okna komunikatu.

Tym razem otrzymałem wszystkie wartości dziesiętne. W typie danych Double możemy podać do 14 cyfr dziesiętnych.
Załóżmy, że podasz jakąkolwiek wartość większą niż 14 miejsc po przecinku, która zostanie przekonwertowana na najbliższą wartość. Na przykład spójrz na poniższy obrazek.

Wpisałem 15 miejsc po przecinku zamiast 14. Jeśli naciśnę klawisz Enter, wróci tylko do 14 cyfr.

Zamiast 59 (ostatnie dwie cyfry) otrzymaliśmy 6, tj. Ponieważ ostatnią cyfrą jest 9, czyli więcej niż 5, poprzednia liczba 5 jest konwertowana na następną wartość całkowitą, tj. 6
Przykład nr 2
Teraz pokażę, jak pracować z odwołaniem do komórki w arkuszu. Poniżej znajdują się liczby, które wpisałem w arkuszu.

Rozpocznijmy przechwytywanie tych samych wartości do następnego, używając typu danych INTEGER, typu danych SINGLE i typu danych DOUBLE .
Poniżej znajduje się kod służący do zachowania wartości z kolumny A do B przy użyciu typu danych INTEGER.
Kod:
Sub Double_Ex () Dim k As Integer Dim CellValue As Integer For k = 1 do 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

Uruchommy kod za pomocą klawisza skrótu F5, aby zobaczyć, jakie wartości otrzymamy w kolumnie B.

Kiedy użyliśmy Integer jako typu danych, otrzymaliśmy wszystkie liczby całkowite, tj. Bez miejsc po przecinku.
Teraz zmienię typ danych VBA zmiennej z liczby całkowitej na pojedynczą.
Kod:
Sub Double_Ex () Dim k As Integer Dim CellValue As Single For k = 1 To 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

Ten kod da następujący wynik.

Tym razem mamy tylko dwa miejsca po przecinku.
Teraz zmienia typ danych z pojedynczego na podwójny.
Kod:
Sub Double_Ex () Dim k As Integer Dim CellValue As Double For k = 1 To 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub

To zwróci poniższy wynik.

Mamy dokładne wartości z kolumny A.
Rzeczy do zapamiętania
- Double to ulepszony typ danych Single.
- Może zawierać do 14 miejsc po przecinku.
- Zużywa 8 bajtów pamięci systemowej.