VBA reťazec na celé číslo - na prevod údajov použite funkciu CINT

Reťazec Excel VBA na celé číslo

String a Integer sú bežné dátové typy, ale často ako súčasť našej analýzy dát môžeme chcieť premeniť premennú dátového typu reťazca na celočíselný dátový typ, čo je možné pomocou funkcie „CINT“ vo VBA.

Syntax funkcie CINT

“CINT” je kategorizovaný ako funkcia konverzie dátového typu. Táto funkcia prevádza poskytnutý výraz na dátový typ Integer. Keď poviem výraz, musí to byť číselná hodnota, ktorá je v rozsahu celočíselného dátového typu vo VBA, tj medzi -32 768 až 32 767.

Teraz sa pozrite na syntax funkcie CINT vo VBA.

  • Výraz je hodnota alebo premenná, ktorá obsahuje hodnotu, ktorá sa má previesť na celočíselný dátový typ.
Poznámka 1: Len čo odovzdáte hodnotu výrazu, musí sa pohybovať v rozmedzí -32768 až 32767. V opačnom prípade to povedie k chybe „Over Flow Error“, tj k priradeniu hodnoty, ktorá presahuje limit dátového typu. Poznámka 2: Výraz musí byť číselná hodnota. Ak je výrazom hodnota reťazca alebo textová hodnota, spôsobí to „Chyba pri behu 13: Neshoda typu.“

V tomto článku si ukážeme konverziu celočíselných dátových typov z reťazca na celé číslo pomocou funkcie „CINT“.

Príklady funkcie CINT vo VBA

Príklad č

Urobme prvý príklad prevodu jedného čísla zlomku na celočíselný dátový typ.

Kód:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564,589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • Vo vyššie uvedenom kóde pre premennú „IntegerNumber“ som priradil hodnotu ako „2564,589“.
  • V ďalšom riadku som použil funkciu CINT. Takže prevedie poskytnutú hodnotu na najbližšie celé číslo.

Získali sme teda výsledok - 2565 a dodané číslo je 2564 589. Ak je desatinná hodnota viac ako 0,5, funkcie CINT zaokrúhlia číslo na ďalšie celé číslo nahor. Keď je desatinná hodnota menšia alebo rovná 0,5 CINT, funkcie sa zaokrúhlia nadol na rovnaké celé číslo.

Napríklad si pozrite nasledujúci kód, kde je počet menší ako 0,5

Kód:

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

Výsledok by mal byť uvedený ako 2564, nie 2565.

Príklad č

Teraz sa pokúsim priradiť číslo, ktoré je viac ako limit dátového typu Integer.

Kód:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456,785 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Priradil som číslo ako „IntegerNumber = 51456,785“, čo je viac ako limit limitu dátového typu Integer. Teraz, keď sa pokúsim spustiť kód, vyvolá to chybu pretečenia vo VBA.

Kedykoľvek je zadané číslo väčšie ako celočíselný údajový typ, umožní sa zobraziť jednoduché okno so správou „Číslo je väčšie ako hranica celočíselného údajového typu“.

Kód:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 Pri chybe Správa GoTo: IntegerResult = CInt (IntegerNumber) Správa: Ak Err.Number = 6, potom MsgBox IntegerNumber & "je viac ako limit celočíselného dátového typu" Koniec Sub

Toto zobrazí správu, ako je uvedené nižšie, kedykoľvek je zadané číslo mimo rozsah dátového typu Celé číslo.

Príklad č

Teraz sa pokúsim priradiť hodnotu, ktorá nie je číselná.

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

Priradil som hodnotu ako „Hello“, ktorá nie je číselná. To spôsobí „Chyba nesúladu typu“.

Namiesto zobrazovania chyby, ako je táto, umiestnime pred používateľa jednoduchú informačnú schránku. Nasledujúci kód umiestni okno so správou „Hodnota poskytnutého výrazu je nečíselná, takže ju nemožno previesť“.

Kód:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" On Error GoTo Message: IntegerResult = CInt (IntegerNumber) Message: If Err.Number = 13 Then MsgBox IntegerNumber & ": Hodnota poskytnutého výrazu je nečíselná , Takže nemôže byť prevedený „End Sub

Zobrazí sa okno so správou nižšie.

Na čo treba pamätať

  • CINT prevádza hodnotu z iného údajového typu na celočíselný údajový typ.
  • Celé číslo môže obsahovať hodnoty od -32768 do 32767, čokoľvek nad týmito číslami spôsobí chybu pretečenia.
  • Iba reťazcový údajový typ obsahuje číselné údaje, ktoré sa prevedú na celočíselný údajový typ.

Odporúčané články

Toto bol sprievodca po reťazci VBA k celému číslu. Tu diskutujeme príklady reťazca na celé číslo v programe Excel VBA pomocou funkcie CINT spolu s praktickými príkladmi a šablónou programu Excel na stiahnutie. Ďalej uvádzame niekoľko užitočných článkov týkajúcich sa VBA -

  • VBA Split String do poľa
  • Reťazec VBA k dnešnému dňu
  • Porovnanie reťazcov VBA
  • VBA Nahradiť reťazec

Zaujímavé články...