Heltal (Int) Variabel Type
VBA Int datatype bruges til at gemme hele tal (ingen decimalværdier). Men som vi vil se nedenfor, skal heltalsværdierne falde inden for intervallet -32768 til 32768.
For at deklarere en Int -variabel bruger du Dim Statement (forkortelse for Dimension):
1 | Dim intA som heltal |
For derefter at tildele en værdi til en variabel skal du blot bruge lighedstegnet:
1 | intA = 30000 |
At sætte dette i en procedure ser sådan ud:
12345678 | Sub IntExample ()'erklærer heltaletDim intA som heltal'udfyld heltaletintA = 30000'vis meddelelsesboksenMsgBox intAAfslut Sub |
Hvis du kører koden ovenfor, vises følgende meddelelsesboks.
Lang variabel type
Som nævnt ovenfor kan Int -variabler kun gemme værdier mellem -32768 til 32768. Hvis du forsøger at tildele en værdi uden for dette område til en Int -variabel, får du en fejl:
Når du klikker på de-bug, vil koden bryde ved 'Udfyld heltalelinjen som et helt tal ikke kan gemme et tal så højt som 50000.
I stedet kan du erklære en variabel med Lang datatype:
1 | Dim longA som Long |
Lange variabler kan gemme meget lange datatyper (-2.147.483.648 til 2.147.483.648).
<>
Hvorfor ville du bruge Int -variabler i stedet for lange variabler?
Lange variabler bruger mere hukommelse. For mange år siden var hukommelsen en stor bekymring, når du skrev kode, men computerteknologi er nu meget forbedret, og det er tvivlsomt, at du støder på hukommelsesproblemer forårsaget af lange variabler, når du skriver VBA -kode.
Vi anbefaler altid at bruge lange variabler i stedet for Int -variabler. Vi vil fortsætte denne vejledning med at diskutere Int -variabler, men husk på, at du kan bruge typen Lang variabel i stedet.
Decimalværdier og Int -datatyper
Int -variabler kan ikke gemme decimalværdier. Hvis du passerer et decimaltal et helt tal, afrundes decimaltallet for at fjerne decimalet.
Hvis du skulle køre nedenstående procedure:
12345678 | Sub IntExampleB ()'erklærer heltaletDim intA som heltal'udfyld heltaletintA = 3524,12'vis meddelelsesboksenMsgBox intAAfslut Sub |
Du får følgende resultat (afrunding nedad):
Denne kode nedenfor:
12345678 | Sub IntExampleB ()'erklærer heltaletDim intA som heltal'udfyld heltaletintA = 3524,52'vis meddelelsesboksenMsgBox intAAfslut Sub |
Ville returnere følgende meddelelsesboks (afrunding):
Decimal / dobbelt datatype
Hvis du vil gemme en decimal, skal du deklarere en variabel, der giver mulighed for decimaler. Der er 3 datatyper, du kan bruge - Single, Double eller Currency.
1 | Dim sngPris som single |
1 | Dim dblPris som dobbelt |
1 | Dim curPris som valuta |
Enkelt datatypen vil afrunde decimaltegnet lidt anderledes end dobbelt- og valutatypen, så det er at foretrække at bruge dobbelt til enkelt for nøjagtighed. En dobbelt kan have op til 12 decimaler, mens valuta og enkelt kan have op til 4 decimaler.
For yderligere information om disse datatyper, kan du kigge her.
Angiv Int -variabel på modul eller globalt niveau
I de foregående eksempler har vi erklæret Int -variablen inden for en procedure. Variabler, der er angivet med en procedure, kan kun bruges inden for denne procedure.
I stedet kan du deklarere Int -variabler på modulet eller globalt niveau.
Modulniveau
Modulniveau variabler erklæres øverst i kodemodulerne med Svag udmelding.
Disse variabler kan bruges med enhver procedure i det pågældende kodemodul.
Globalt niveau
Globalt niveau variabler erklæres også øverst i kodemodulerne. Men i stedet for at bruge Svag erklæring, brug Offentlig sætning for at angive, at heltalsvariablen er tilgængelig til brug i hele dit VBA -projekt.
1 | Offentlig IntA som heltal |
Hvis du skulle erklære heltalet på et modulniveau og derefter prøve at bruge det i et andet modul, ville der opstå en fejl.
Men hvis du havde brugt det offentlige søgeord til at deklarere heltalet, ville fejlen ikke opstå, og proceduren ville køre perfekt.
Konverter streng til Int
Der kan være en eller flere tilfælde, hvor du skal konvertere et nummer, der er gemt som en streng, til en heltalværdi.
Du vil bemærke i det umiddelbare vindue, at heltalsværdien går til højre og angiver et tal, mens strengværdien går til venstre - hvilket angiver tekst.
Konverter Int til streng
Omvendt kan du konvertere en heltalsværdi til en streng.
For yderligere information om disse datatyper, kan du kigge her.
Format Heltal gemt som streng
<>