Ciąg VBA na liczbę całkowitą - użyj funkcji CINT do konwersji danych

Ciąg VBA programu Excel na liczbę całkowitą

String i Integer są typowymi typami danych, ale często w ramach naszej analizy danych możemy chcieć przekonwertować zmienną typu string na typ danych całkowitoliczbowych i jest to możliwe przy użyciu funkcji „CINT” w języku VBA.

Składnia funkcji CINT

„CINT” jest klasyfikowany jako funkcja konwersji typu danych. Ta funkcja konwertuje podane wyrażenie na typ danych Integer. Kiedy mówię „Wyrażenie”, musi to być wartość liczbowa, która mieści się w zakresie typu danych Integer w VBA, tj. Między -32768 a 32767.

Przyjrzyjmy się teraz składni funkcji CINT w języku VBA.

  • Wyrażenie jest wartością lub zmienną, która zawiera wartość do przekonwertowania na typ danych Integer.
Uwaga 1: Po prostu przekazanie wartości wyrażenia musi wynosić od -32768 do 32767. W przeciwnym razie doprowadzi to do „błędu przepełnienia”, tj. Przypisania wartości przekraczającej limit typu danych. Uwaga 2: Wyrażenie musi być wartością liczbową. Jeśli wyrażenie jest wartością ciągu lub wartością tekstową, spowoduje to „Błąd w czasie wykonywania 13: niezgodność typów”.

W tym artykule pokażemy Ci, jak konwertować dane typu integer ze string na integer za pomocą funkcji „CINT”.

Przykłady funkcji CINT w VBA

Przykład 1

Przeprowadźmy pierwszy przykład konwersji jednej liczby ułamkowej na typ danych Integer.

Kod:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564.589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • W powyższym kodzie zmiennej „IntegerNumber” przypisałem wartość „2564.589”.
  • W następnym wierszu zastosowałem funkcję CINT. Więc przekonwertuje podaną wartość na najbliższą liczbę całkowitą.

Otrzymaliśmy więc wynik - 2565, a podana liczba to 2564,589. Gdy wartość dziesiętna jest większa niż 0,5 CINT, funkcje zaokrągla liczbę do następnej liczby całkowitej. Gdy wartość dziesiętna jest mniejsza lub równa 0,5 CINT, funkcje zaokrągla w dół do tej samej liczby całkowitej.

Na przykład spójrz na poniższy kod, w którym liczba jest mniejsza niż 0,5

Kod:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564 - 0,5 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Powinno to dać wynik 2564, a nie 2565.

Przykład nr 2

Teraz spróbuję przypisać liczbę, która jest większa niż limit typu danych Integer.

Kod:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Przypisałem numer jako „IntegerNumber = 51456,785”, czyli więcej niż limit typu danych Integer. Teraz, jeśli spróbuję uruchomić kod, spowoduje to błąd przepełnienia w VBA.

Ilekroć podana liczba jest większa niż typ danych Integer, pokaż proste okno komunikatu z informacją „Liczba jest więcej niż limit typu danych typu Integer”.

Kod:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 Przy błędzie GoTo Komunikat: IntegerResult = CInt (IntegerNumber) Komunikat: Jeśli Err.Number = 6 Wtedy MsgBox IntegerNumber & „jest czymś więcej niż limit typu danych całkowitych” Napis końcowy

Spowoduje to wyświetlenie komunikatu podobnego do poniższego, gdy podana liczba jest poza zakresem typu danych Integer.

Przykład nr 3

Teraz spróbuję przypisać wartość, która nie jest liczbą.

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Przypisałem wartość „Hello”, która nie jest liczbą. Powoduje to „Błąd niezgodności typu”.

Zamiast pokazywać taki błąd, umieśćmy przed użytkownikiem prosty komunikat informacyjny. Poniższy kod spowoduje wyświetlenie okna komunikatu „Podana wartość wyrażenia jest nieliczbowa, więc nie można jej przekonwertować”.

Kod:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" Przy błędzie GoTo Message: IntegerResult = CInt (IntegerNumber) Message: If Err.Number = 13 Then MsgBox IntegerNumber & ": Podana wartość wyrażenia nie jest liczbowa , Więc nie można przekonwertować „End Sub

Spowoduje to wyświetlenie poniższego okna komunikatu.

Rzeczy do zapamiętania

  • CINT konwertuje wartość z innego typu danych na całkowity typ danych.
  • Liczba całkowita może przechowywać wartości od -32768 do 32767, cokolwiek powyżej tych liczb spowoduje błąd przepełnienia.
  • Tylko dane typu łańcuchowego zawierają dane liczbowe, które zostaną przekonwertowane na typ danych całkowity.

Polecane artykuły

To był przewodnik po VBA String to Integer. Tutaj omawiamy przykłady ciągów do liczb całkowitych w Excel VBA przy użyciu funkcji CINT wraz z praktycznymi przykładami i szablonem Excela do pobrania. Poniżej znajduje się kilka przydatnych artykułów związanych z VBA -

  • VBA Podziel ciąg na tablicę
  • Ciąg VBA do tej pory
  • Porównanie ciągów VBA
  • VBA Zastąp ciąg

Interesujące artykuły...