VBA andmetüüp
Andmetüüp on iga muutuja põhitegelane, see tähistab, millist tüüpi väärtust saame muutujasse salvestada ja milline on muutujale salvestatavate piiride või väärtuste vahemik, andmetüübid on sisseehitatud VBA ja kasutaja või arendaja peab teadma, millist tüüpi väärtust millises andmetüübis saab salvestada. Muutujaile omistatavad andmetüübid ütlevad koostaja muutuja suuruse.
VBA-s on meil kahte tüüpi andmetüüpe, st numbrilised ja mittearvulised.
Enne mis tahes andmetüübi määramist peame esmalt deklareerima muutuja nime. Muutuja on nimi, mis hoiab väärtust määratud andmetüübi kaudu. Muutujale nime andes peame silmas pidama mõnda asja.
Muutuja saame määratleda kahel viisil. Üks on "implitsiitselt" ja teine "selgesõnaliselt".
- Muutuja määratlemiseks on vaikimisi sõna "DIM" ja andmetüüpi kasutamata. Näiteks MyValue = 500 on vaikimisi muutuja deklareerimise viis.
- Muutuja määratluse sõnaselge viis on sõna "DIM" ja sellega seotud andmetüüp. Näiteks Dim MyValue kui täisarv .

2 peamist tüüpi andmetüübid
Andmetüübi määramiseks kõigepealt muutujale peame mõistma andmetüüpide tüüpe. Parema mõistmise huvides saame kategoriseerida kahte plaati.
# 1 - numbrilised andmetüübid
Need võivad sisaldada ainult arvväärtusi. Kõige tavalisemad arvandmetüübid on bait, täisarv, pikk, üksik, topelt, valuuta ja kümnendkoht.
Kõigil andmetüüpidel võivad olla vastavad väärtused. Allpool on üksikasjalik selgitus.
- Bait mahutab väärtused vahemikus 0 kuni 255. See ei mahu peale 255.
- Täisarv võib sisaldada väärtusi vahemikus -32768 kuni 32768. See ei saa sisaldada kümnendkohti.
- Pikka mahutab väärtused vahemikus -2 147 483 648 kuni 2 147 483 648.
- Üks andmetüüp mahutab väärtusi kuni 7 numbrit, näiteks 1234567, 1,245564.
- Kahekordne andmetüüp mahutab kuni 15 numbrit. See on lihtsalt andmetüübi Single laiendamine.
- Valuuta andmetüüp võib sisaldada 15 numbrit enne kümnendarvu ja 4 numbrit pärast kümnendarvu.
- Kümnendkohtadega andmetüüp mahutab kuni 28 kohta pärast koma. Kui soovite salvestada rohkem kui 15 kümnendkoha täpsust, võite kasutada seda andmetüüpi.
# 2 - mitte-numbrilised andmetüübid
Need andmetüübid võivad sisaldada muu kui arvväärtusi. Sagedamini kasutatakse mittearvulisi andmetüüpe Variant , String, Loogiline, Kuupäev, Objekt.
- String: stringi andmetüüpe on kahte tüüpi. Üks, mis mahutab arvandmeid, ja teine, mis mahutab mittearvulisi andmeid.
- String Fikseeritud pikkusega mahub märke 1–65400 tähemärki.
- String Muutuva pikkusega tähemärgid võivad olla 0–2 miljardit tähemärki.
- Boolean võib sisaldada loogilisi tulemuse väärtusi, st TRUE või FALSE.
- Kuupäev võib sisaldada ainult kuupäevaväärtusi 1. jaanuarist 100 kuni 31. detsembrini 9999
- Objekt, kuhu see mahutab, mahutab ainult Microsofti toote objekte. Näiteks tööleht, töövihik, vahemik, PowerPoint, Word.
- Variandil on ka kaks andmetüüpi, st Tekst ja Numbriline.
- Variant Text mahutab tekstiväärtusi sama mis muutuja String Muutuja pikkus.
- Variant Numeric mahutab arvväärtusi sama mis andmetüüp Double.
Erinevate VBA andmetüüpide kasutamise näited
Näiteks andmetüübi määramiseks peame deklareerima muutuja, kasutades sõna „ Dim”.
Kood:
Sub DT_näide1 () Dim k End Sub
Nüüd, kasutades sõna “As”, peame määrama andmetüübi. Nüüd määran andmetüübiks bait.
Kood:
Alam DT_näide1 () Dim k baidi lõpu alam
Nagu me teame, mahutab baidi andmetüüp väärtused vahemikku 0 kuni 255. Kuid testimiseks määran väärtuse üle 255.
Kood:
Alam DT_näide1 () Mõõt k baidina k = 260 Lõpp alam
Kui ma selle koodi käivitan, kuvatakse viga nimega „Üle voolu”.

Sarnaselt võivad ka muud andmetüübid sisaldada väärtusi vastavalt nende piiridele.
Nüüd heitke pilk allpool olevale koodile.
Kood:
Alam DT_näide2 () Dim k As Loogiline k = 100 MsgBox k End Sub
Andmetüübiks on määratud „Boolean”, mille väärtuseks on TRUE või FALSE. Kuid olen määranud muutujale „k” väärtuseks „100”.
Käivitage see kood ja vaadake, mis juhtub.

Saime tulemuseks tõese.
Põhjus, miks saime TÕENE, sest excel käsitleb kõike muud kui 0 TÕENA ja 0 väärana.
Nüüd määran mitte arvulise väärtuse ja vaatan, mis juhtub.

Saime vea, kuna „tõeväärtus” ei aktsepteeri muid tekstiväärtusi kui TRUE või FALSE.