vba data types numeric
Deze tutorial legt verschillende numerieke en niet-numerieke gegevenstypen uit die beschikbaar zijn in VBA. We zullen ook leren over datatypeconversies
We komen elke dag veel soorten gegevens tegen, zoals naam, datum, rekeningen, prijs van een artikel, enz. Al deze gegevens behoren tot een bepaald type en hun waarden kunnen niet afwijken van het type dat eraan is gekoppeld. Evenzo heeft VBA veel soorten gegevens die worden gebruikt om de vereiste actie uit te voeren.
In deze tutorial leren we de verschillende soorten gegevens die in VBA worden gebruikt en zien we hoe deze kunnen helpen bij het organiseren van ons programma. We zullen ook kijken naar het converteren van een gegevenstype naar een ander gegevenstype.
Bekijk hier ALLE VBA-tutorials
Wat je leert:
- Categorieën van gegevenstypen
- Gevolgtrekking
Categorieën van gegevenstypen
Het gegevenstype vertelt de computer het type gegevens dat moet worden opgeslagen door een variabele te gebruiken. Gegevenstypen zijn onderverdeeld in 2 categorieën, d.w.z. numerieke en niet-numerieke gegevenstypen
Numerieke gegevenstypen
Deze typen worden gebruikt om wiskundige bewerkingen uit te voeren, zoals optellen, aftrekken, enz. Voorbeeld, percentageberekening, aandelenkoers, vergoedingen, rekeningen, leeftijd, etc.
In VBA zijn er 7 soorten numerieke gegevenstypen, zoals hieronder vermeld.
Numeriek gegevenstype | |
---|---|
7 | Decimale |
1 | Byte |
twee | Geheel getal |
3 | Lang |
4 | Single |
5 | Dubbele |
6 | Valuta |
Laten we eens kijken naar alle numerieke gegevenstypen.
# 1) Byte-gegevenstype
Dit gegevenstype vereist slechts één byte geheugen. Variabelen met het gegevenstype Byte kunnen waarden van 0 tot 255 opslaan. De standaard bytewaarde is 0. Negatieve waarden en waarden groter dan 255 zijn niet toegestaan. Als u probeert ongeldige waarden toe te wijzen, wordt een overloopfout geretourneerd.
Syntaxis: Dim Vname As Byte
Hier is Vname een variabelenaam en Byte is het gegevenstype van de variabele.
Voorbeeld:
De output wordt hieronder gegeven
# 2) Geheel getal gegevenstype
Deze gegevenstypen worden gebruikt om de gehele waarde op te slaan. Dit neemt 2 bytes aan geheugen in beslag. Een geheel getal is een van de meest gebruikte gegevenstypen. Ze accepteren zowel positieve waarden, negatieve waarden als ook nul. Ze hebben een bereik tussen -32.768 en 32.767.
Syntaxis: Dim ontsteekt als geheel getal
Voorbeeld:
De output wordt hieronder gegeven
# 3) Lang gegevenstype
Dit is een alternatief voor een gegevenstype met een geheel getal waarin ook een geheel getal wordt opgeslagen. Het neemt echter meer geheugen in beslag dan een integer-variabele van 4 bytes. Het heeft een waardebereik van -2.147.483.648 tot 2.147.483.648
Syntaxis: Dim vname As Long
Als u de bovenstaande code uitvoert met een integer-variabele, krijgt u een overflow-fout omdat er 1048576 rijen zijn in Excel en het gegevenstype Integer ondersteunt slechts 32.767. Zoals hieronder wordt getoond wanneer het gegevenstype lang is, wordt een passend resultaat weergegeven.
Maar als het gegevenstype een geheel getal is, wordt er een overloopfout gegenereerd.
# 4) Decimaal gegevenstype
Dit is een exact numeriek gegevenstype dat wordt gebruikt vanwege zijn precisie. Dat is het totale aantal cijfers en het aantal cijfers rechts van de komma, een zogenaamde schaalfactor.
In VBA worden getallen geschaald met een macht van 10. Het is gepast om deze typen te gebruiken bij het manipuleren van grote getallen die een precieze waarde nodig hebben. Dit neemt 14 bytes aan geheugen in beslag.
Maar variabelen kunnen niet direct worden gedeclareerd als een decimaal gegevenstype. Om Decimal te kunnen gebruiken, moet u de CDec-conversiefunctie gebruiken. U moet een gegevenstype Variant gebruiken.
Dit gegevenstype bevat het onderstaande waardenbereik.
+/- 79,228,162,514,264,337,593,543,950,335 zonder decimale punt
+/- 7,9228162514264337593543950335 met 28 decimalen rechts van de decimaal.
De kleinste geaccepteerde niet-nulwaarde is +/- 0,0000000000000000000000000001.
Syntaxis: Dim ontsteekt als variant
Notitie: TypeName-functie geeft de datatype-naam
Uitgang:
# 5) Eén gegevenstype
Dit gegevenstype wordt gebruikt om getallen op te slaan met drijvende komma met één precisie. Het neemt 4 bytes aan geheugen in beslag. De standaardwaarde is 0 en slaat decimale waarden op. U kunt het uitroepteken (!) Gebruiken terwijl u een variabele declareert, zoals weergegeven in de onderstaande syntaxis.
De geaccepteerde waarden zijn:
3.402823E38 tot -1.401298E-45 voor negatieve waarden
1.401298E-45 tot 3.402823E38 voor positieve waarden.
Syntaxis
Dim VariableName als Single
of
Dim Variabelenaam!
# 6) Dubbel gegevenstype
De dubbele VBA-gegevens kunnen worden gebruikt om zowel gehele getallen als breuken vast te houden. Dubbel wordt gebruikt om getallen op te slaan met drijvende komma met dubbele precisie. Het neemt 8 bytes aan geheugen in beslag en heeft een reeks waarden.
-1.79769313486231E308 tot -4.94065645841247E-324 voor negatieve waarden
4.94065645841247E-324 tot 1.79769313486232E308 voor positieve waarden
Net als het gegevenstype Single, kan dubbel ook worden gedeclareerd met een symbool dat Hash (#) is, zoals hieronder wordt weergegeven.
Syntaxis
Dim VariableName as Double
of
Dim Variabelenaam #
# 7) Valutagegevenstype
Dit gegevenstype kan tot 8 bytes opslagruimte in beslag nemen. Dit type gegevens geeft exacte waarde, in tegenstelling tot enkele en dubbele gegevenstypen die we al hebben besproken. Deze zijn handig voor monetaire berekeningen.
Het valutagegevenstype kan zowel positieve als negatieve waarden opslaan. Deze kunnen 15 cijfers links van de komma en 4 cijfers rechts opslaan.
Toegestaan bereik is -922.337.203.685.477,5808 tot 922.337.203.685.477,5807. U kunt @ gebruiken om valutagegevenstypen aan te geven.
Syntaxis
Dim VariableName als valuta
of
Dim Variabelenaam @
Uitgang:
Notitie Als de waarde van de variabele het opgegeven bereik voor een bepaald gegevenstype overschrijdt, wordt er een overloopfout gegenereerd.
Beschouw het eenvoudige voorbeeld van het bytegegevenstype dat zijn bereik overschrijdt. Dezelfde fout wordt weergegeven als u negatieve waarden invoert voor het bytegegevenstype.
Niet-numerieke gegevenstypen
Dit zijn gegevens die niet kunnen worden gemanipuleerd door rekenkundige operatoren. Ze bestaan uit Tekst, String, Datum, etc. Hieronder staan de niet-numerieke gegevenstypen die in VBA worden ondersteund.
Niet-numeriek gegevenstype | |
---|---|
7 | Variant (tekens) |
1 | String (vaste lengte) |
twee | String (variabele lengte) |
3 | Datum |
4 | Boolean |
5 | Voorwerp |
6 | Variant (cijfers) |
# 1) Booleaans gegevenstype
Dit gegevenstype vereist 2 bytes geheugen en kan slechts 2 waarden opslaan, d.w.z. TRUE of FALSE. Met andere woorden, de Booleaanse variabele kan alleen de waarde TRUE of FALSE krijgen, respectievelijk 1 of 0. De standaardwaarde van een Booleaanse variabele is False.
Syntaxis - Dim Vname As Boolean
Voorbeeld:
# 2) Datumgegevenstype
Dit gegevenstype wordt gebruikt om de datum en tijd weer te geven. Het heeft datumbereikwaarden van 1 jan. 0100 tot 31 december 9999, en tijdwaarden van 0:00:00 tot 23:59:59 en neemt 8 bytes aan opslagruimte in beslag.
Syntaxis: Dim ontsteekt als datum
Notitie: Now-functie geeft de huidige datum en tijd
# 3) String-gegevenstype
Dit gegevenstype wordt gebruikt om de tekenreekswaarde op te slaan. De string wordt gedefinieerd als een reeks tekens. U kunt dus het gegevenstype String gebruiken om tekst op te slaan en kan worden gebruikt om nummers, speciale tekens, s en gebeurtenisruimten op te slaan. Een tekenreekswaarde moet worden ingesloten tussen dubbele aanhalingstekens ''.
Er zijn 2 soorten String-gegevenstypes.
# 1) String met variabele lengte: Dit type neemt 10 bytes opslagruimte in beslag plus het geheugen dat nodig is voor de string die de stringlengte is. Ze hebben een bereikwaarde van 0 tot ongeveer 2 miljard.
c ++ bubbelsorteerfunctie
# 2) String met vaste lengte: Het neemt het geheugen in beslag dat gelijk is aan de lengte van de string zelf. Het kan variëren van 1 tot ongeveer 65.400 tekens
Syntaxis: Dim Vname As String
Voorbeeld:
# 4) Objectgegevenstype
Object zal een verwijzing hebben naar een object van elk type, dwz Object-gegevenstype kan verwijzen naar elk gegevenstype zoals string, dubbel, integer, etc. Objectvariabele zal de waarde niet bevatten, het verwijst alleen naar het adres waarin de gegevens zijn opgeslagen. Het neemt 4 bytes computergeheugen in beslag. De standaardwaarde van een object is een null-verwijzing.
Syntaxis: Dim VName als object
Voorbeeld:
Hiermee worden alle gebruikte cellen in het huidige blad gewist.
# 5) Variant-gegevenstype
Dit is het universele gegevenstype van VBA, het kan elk soort gegevens numeriek en niet-numeriek accepteren. Variant-gegevenstype biedt meer flexibiliteit bij het werken met gegevens. Variant-gegevenstype gebruikt meer opslagruimte dan enig ander gegevenstype. Als u geen datatype noemt, behandelt VBA dat als een Variant-variabele.
Er zijn 2 soorten Variant-gegevenstypen
# 1) Variant (cijfers): Dit kan elke numerieke waarde bevatten tot het bereik van Double. De variantnummers nemen 16 bytes opslagruimte in beslag.
# 2) Variant (tekens): Dit kan hetzelfde bereik bevatten als voor String met variabele lengte. De variant-tekens nemen 22 bytes + stringlengte in beslag (24 bytes op 64-bits systemen)
Syntaxis
Dim VName als variant
of
Afm VName
Voorbeeld:
Conversie van gegevenstypen
Soms wordt het nodig om het datatype van een variabele te converteren naar iets specifieks in onze use case.
Voorbeeld: U haalt een waarde op uit een cel, die meestal een tekenreeks is, en daarom moet u deze omzetten naar een numeriek gegevenstype voordat u een rekenkundige bewerking uitvoert. Om dit te bereiken heeft VBA typeconversiefuncties voor alle ondersteunde gegevenstypen.
# 1) CBool
Deze functie wordt gebruikt om een uitdrukking naar een Booleaans gegevenstype te converteren. Als de uitdrukking nul retourneert, retourneert CBool False, en elke niet-nulwaarde geeft CBool True terug.
De bovenstaande code retourneert resultaten als False, True, False, True.
U kunt het zelf proberen, een ActiveX-besturingsopdrachtknop tekenen, met de rechtermuisknop klikken -> Code bekijken en de bovenstaande code invoegen. Klik op de Command-knop en het resultaat wordt weergegeven. (Schakel de ontwerpmodus uit)
Uitvoer
# 2) CByte
Deze functie wordt gebruikt om een uitdrukking naar een byte-gegevenstype te converteren. Onthoud dat na de conversie als het bereik het bereik overschrijdt dat is toegestaan voor Byte, er een overloopfout wordt gegenereerd.
Notitie: Als u de waarde 255,56 geeft. Complier retourneert een overloopfout
# 3) CCur
Deze functie converteert een uitdrukking naar een gegevenstype Valuta.
# 4) CDate
Deze functie converteert een string naar een datum. Stel dat u de datumwaarde als een tekenreeks ophaalt uit een Excel-cel, dan moet u deze converteren voordat u verdere actie uitvoert. U kunt CDate gebruiken.
# 5) CDbl
De functie CDbl wordt gebruikt om een uitdrukking naar een dubbel gegevenstype te converteren.
# 6) CDec
Deze functie converteert een numerieke waarde naar decimaal.
# 7) CInt
De functie CInt converteert een waarde naar een integer-gegevenstype.
# 8) CLng
Deze functie wordt gebruikt om een waarde om te zetten naar een lang gegevenstype
# 9) CSng
Deze functie converteert een waarde naar een enkel gegevenstype
# 10) CStr
Deze functie wordt gebruikt om een numerieke waarde om te zetten in een stringgegevenstype.
# 11) CVar
Deze functie converteert een uitdrukking naar een gegevenstype Variant.
Veel Gestelde Vragen
V # 1) Wat is het standaardgegevenstype in VBA?
Antwoord: Variant is de standaard variant. Als u geen gegevenstype van een variabele definieert, behandelt VBA het als een variantvariabele / object.
V # 2) Wat is een foutmelding dat het type niet overeenkomt?
Antwoord: Deze fout wordt geactiveerd wanneer u een variabele als één gegevenstype declareert en een ongepaste waarde toewijst.
Voorbeeld: Declareer een variabele als geheel getal en voer een tekstwaarde in.
V # 3) Hoe los ik een overloopfout op?
Antwoord: U moet verwijzen naar het bereik dat bepaald gegevenstype is toegestaan en ervoor zorgen dat u een waarde invoert binnen het toegestane bereik.
Voorbeeld: Byte staat alleen 0 tot 255 toe. Als u een negatieve waarde of een v-waarde van meer dan 255 invoert, treedt er een overloopfout op.
Gevolgtrekking
In deze tutorial hebben we geleerd over VBA-gegevenstypen, d.w.z. 7 numerieke en 7 niet-numerieke gegevenstypen. We hebben ook besproken hoe u een gegevenstype van het ene type naar het andere kunt converteren met voorbeelden.
Kijk hier om A-Z van VBA-trainingshandleidingen te zien
Aanbevolen literatuur
- Excel VBA-zelfstudie - Inleiding tot VBA in Excel
- C ++ gegevenstypen
- Python-gegevenstypen
- C # Gegevenstypen en variabelen met voorbeelden
- C # Type Casting: expliciete en impliciete dataconversie met voorbeeld
- Array-gegevenstypen - int Array, Double array, Array of Strings Etc.
- MySQL-gegevenstypen | Wat zijn verschillende gegevenstypen in MySQL