Podwójny typ danych Excel VBA

W VBA mamy różne typy typów danych, które są używane w zależności od potrzeb. Podobnie jak w przypadku liczb używany jest typ danych Integer, w przypadku alfabetów i tekstu typ danych String - w przypadku liczb i tekstu bez ograniczeń stosowany jest typ danych Long. Podobnie mamy podwójny typ danych, który jest używany dla liczb dziesiętnych. Chociaż możemy użyć opcji Pojedynczy dla miejsc po przecinku, ale to zachowa tylko wartości do 2 punktów po przecinku. Jeśli chcemy używać wartości dziesiętnych bez żadnych ograniczeń, mamy do tego podwójny typ danych.

Jeśli użyjemy liczb całkowitych zamiast podwójnego typu danych dla wartości dziesiętnych, wówczas przekształci wartość dziesiętną na najbliższe liczby całkowite. Istnieje również pewien limit używania podwójnego typu danych. Double może pomieścić wartości ujemne od -1, 79769313486231E308 do -4, 9.96565455841247E324, a dla wartości dodatnich od 4.94065645841247E-324 do 1.79769313486232E308. Poza tym wartość nie może zostać zaakceptowana.

Jak korzystać z podwójnego typu danych VBA w programie Excel?

Poniżej znajdują się różne przykłady użycia podwójnego typu danych w Excel VBA.

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

VBA Double - Przykład nr 1

W tym przykładzie zobaczymy, w jaki sposób różne typy danych, takie jak liczby całkowite i pojedyncze, dają dane wyjściowe dla dowolnej wartości dziesiętnej, a z drugiej strony, w jaki sposób typ danych Double daje dane wyjściowe o tej samej wartości dziesiętnej. W tym celu wykonaj następujące kroki:

Krok 1: Otwórz moduł z karty menu Wstaw.

Krok 2: Napisz podprocedurę dla VBA Double. Możemy wybrać dowolną inną nazwę do zdefiniowania nazwy VBA Double zgodnie z naszym wyborem.

Kod:

 Sub VBA_Double () End Sub 

Krok 3: Teraz zdefiniuj zmienną, powiedzmy, że będzie to A jako liczba całkowita, jak pokazano poniżej.

Kod:

 Sub VBA_Double () Dim A As Integer End Sub 

Krok 4: Przypisz wartość dziesiętną do zdefiniowanej zmiennej. Załóżmy, że wartość dziesiętna wynosi 1, 23456789, jak pokazano poniżej.

Kod:

 Sub VBA_Double () Dim A As Integer A = 1.23456789 End Sub 

Krok 5: Teraz potrzebujemy platformy, na której możemy zobaczyć wyniki. Tutaj możemy użyć funkcji Msgbox lub Debug.Print. Użyjemy Msgbox, który jest najbardziej tradycyjnym sposobem działania.

Kod:

 Sub VBA_Double () Dim A As Integer A = 1.23456789 MsgBox A End Sub 

Krok 6: Uruchom go, klikając przycisk Odtwórz lub naciskając klawisz F5.

Zobaczymy okno komunikatu wyjściowego o wartości „1”. Oznacza to, że typ danych Integer przekształcił wartość dziesiętną na najbliższą liczbę całkowitą jako 1.

Krok 7: Teraz zmieńmy typ danych z Integer na Single i zobaczmy, jaki typ danych zwróci nam.

Kod:

 Sub VBA_Double () Dim A As Single A = 1.23456789 MsgBox A End Sub 

Krok 8: Ponownie uruchom kod, klikając przycisk Odtwórz lub naciskając klawisz F5.

Zobaczymy, pojedynczy typ danych zwrócił wartość dziesiętną, która wynosi 1 . 234568, podczas gdy wprowadziliśmy wartość wejściową jako 1.23456789 .

Oznacza to, że typ danych Single przekształca wprowadzoną wartość dziesiętną na najbliższą możliwą wartość dziesiętną poprzez konwersję ostatniej cyfry na najbliższą wartość, która powinna być mniejsza niż 5.

Krok 9: Teraz użyjemy typu danych Double zamiast Single i zobaczymy, jaki wynik otrzymamy.

Kod:

 Sub VBA_Double () Dim A As Double A = 1.23456789 MsgBox A End Sub 

Krok 10: Ponownie uruchom kod, klikając przycisk Odtwórz lub naciskając klawisz F5.

Zobaczymy, okno komunikatu ma dokładnie tę samą wartość, którą wprowadziliśmy, co oznacza, że ​​Double nie przekonwertował wartości wejściowej, jeśli spadnie poniżej jej limitu.

VBA Double - Przykład nr 2

W tym przykładzie użyjemy odwołań do komórek. I zaczniemy działać w taki sam sposób, jak widzieliśmy w przykładzie 1. W tym celu mamy kilka danych w kolumnie A w postaci cyfr dziesiętnych.

Wykonaj poniższe kroki:

Krok 1: Napisz podprocedurę VBA Double, jak pokazano poniżej.

Kod:

 Sub VBA_Double2 () End Sub 

Krok 2: Najpierw zaczniemy od liczby całkowitej. Zdefiniuj zmienną jako Liczba całkowita, jak pokazano poniżej. To byłaby nasza zmienna wejściowa.

Kod:

 Sub VBA_Double2 () Dim A As Integer End Sub 

Krok 3: Następnie ponownie zdefiniujemy zmienną jako liczbę całkowitą. Jest to zmienna, w której będziemy przechowywać dane wyjściowe.

Kod:

 Sub VBA_Double2 () Dim A As Integer Dim Deci As Integer End Sub 

Krok 4: Otwórz pętlę For-Next, jak pokazano poniżej. W tym miejscu napiszemy warunek, aby przenieść dane z kolumny do innej kolumny.

Kod:

 Sub VBA_Double2 () Dim A As Integer Dim Deci As Integer For Next A End Sub 

Krok 5: Wybierz zakres komórek w zmiennej A. Tutaj nasze dane pochodzą z komórki A1 do A10.

Kod:

 Sub VBA_Double2 () Dim A As Integer Dim Deci As Integer For A = 1 To 10 Next A End Sub 

Krok 6: Teraz wybierz wartości komórek, które chcemy umieścić. Tutaj wartości komórek znajdują się w pierwszej kolumnie.

Kod:

 Sub VBA_Double2 () Dim A As Integer Dim Deci As Integer For A = 1 To 10 Deci = Cells (A, 1) .Value Next A End Sub 

Krok 7: Teraz umieścimy wybrane wartości w kolumnie 2, która jest B w zdefiniowanej zmiennej Deci .

Kod:

 Sub VBA_Double2 () Dim A As Integer Dim Deci As Integer For A = 1 To 10 Deci = Cells (A, 1) .Value Cells (A, 2) .Value = Deci Next A End Sub 

Krok 8: Uruchom kod, klikając przycisk Odtwórz lub naciskając klawisz F5.

Jak wybraliśmy typ danych Integer dla zmiennej wyjściowej Deci, więc przekształcił liczby dziesiętne na liczby całkowite w kolumnie B.

Krok 9: Zmieńmy typ danych Deci, który jest zmienną wyjściową z Integer na Single, jak pokazano poniżej.

Kod:

 Sub VBA_Double2 () Dim A As Integer Dim Deci As Single For A = 1 To 10 Deci = Cells (A, 1) .Value Cells (A, 2) .Value = Deci Next A End Sub 

Krok 10: Uruchom kod, klikając przycisk Odtwórz lub naciskając klawisz F5. Zobaczymy, liczby dziesiętne z kolumny A zostały przekonwertowane na najlepsze możliwe bliższe liczby dziesiętne.

Krok 11: Zmieńmy typ danych zmiennej wyjściowej z Single na Double . I zobacz, co otrzymamy w kolumnie B.

Kod:

 Sub VBA_Double2 () Dim A As Integer Dim Deci As Double For A = 1 To 10 Deci = Cells (A, 1) .Value Cells (A, 2) .Value = Deci Next A End Sub 

Krok 12: Ponownie uruchom kod, klikając przycisk Odtwórz lub naciskając klawisz F5. Tak działa VBA Double .

Plusy i minusy VBA Double

  • VBA Double przekształca tę samą liczbę na liczby dziesiętne w określonym zakresie.
  • Jest dość łatwy w użyciu.
  • W podobny sposób możemy użyć typu danych Double zamiast Integer lub Single.
  • Nie uwzględnia liczby dziesiętnej poza limitem, który widzieliśmy w powyższej części wstępnej.

Rzeczy do zapamiętania

  • Limit użycia VBA Double dla wartości ujemnych wynosi od -1, 79769313486231E308 do -4, 9.94065645841247E324, a dla wartości dodatnich wynosi od 94065645841247E-324 do 1.79769313486232E308.
  • VBA Double może przechowywać do 14 cyfr, jeśli jest poniżej podanego limitu.
  • VBA Double zużywa 8 bajtów pamięci systemowej dla każdego używanego typu.

Polecane artykuły

Jest to przewodnik po programie Excel VBA Double. Tutaj omawiamy sposób korzystania z podwójnych typów danych w Excel VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. VBA Randomize (przykłady z szablonem Excel)
  2. Jak zmienić nazwę arkusza w VBA?
  3. Jak korzystać z VBA ReDim?
  4. Deklaracja zmiennej VBA | Szablon Excel
  5. VBA Environ

Kategoria: