VBA Double

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 miejsc dziesiętnych. 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

Możesz pobrać ten szablon VBA Double Excel tutaj - Szablon VBA Double Excel

Przykład 1

Zanim zobaczymy przykład typu danych „Double”, przyjrzyjmy się przykładowym kodom typu danych „Integer” i „Single” w języku 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ż to VBA przekonwertował liczbę na najbliższą wartość całkowitą, tj. 3.

Gdy wartość dziesiętna jest większa niż 0,5, to 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, przekonwertowano 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.

Jeśli podasz jakąkolwiek wartość większą niż 14, pozycja dziesiętna zostanie przekonwertowana na najbliższą wartość. Jako 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, czyli ponieważ ostatnią cyfrą jest 9, która jest większa niż 5 poprzednia liczba 5 jest konwertowana na następną wartość całkowitą, czyli 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ę tylko 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.