VBA lang datatype (dim variabel)

Lang variabel type

VBA Lang datatype brukes til å lagre svært lange dataverdier (-2 147 483 648 til 2 147 483 648). Den kan bare lagre hele tall (uten desimaler).

For å deklarere en lang variabel bruker du Dim Statement (forkortelse for Dimension):

1 Dim lngA som lang

For deretter å tilordne en verdi til en variabel, bare bruk likhetstegnet:

1 lngA = 30000

Å sette dette inn i en prosedyre ser slik ut:

12345678 Sub lngExample ()'erklærer den lange variabelenDim lngA som lang'fyll ut den lange variabelenlngA = 30000'vis meldingsboksenMsgBox lngASlutt Sub

Hvis du kjører koden ovenfor, vises følgende meldingsboks.

Lang lang datatype

LongLong -datatypen er bare tilgjengelig i 64 -biters versjon av Microsoft Office. Hvis du kjører en 32 -biters versjon av Office på en 64 -biters maskin, vil denne datatypen ikke være tilgjengelig. Den støtter tall i området -9,223,372,036,854,775,808 til 9,223,372,036,854,775,807.

1 Dim lngA som LongLong

LongPtr -datatype

LongPtr ble introdusert i VBA for å støtte 64 -biters versjon av Microsoft Office. På et 32 ​​-biters system blir det behandlet som en Long og på 64 -bits systemer blir det behandlet som en LongLong.

1 Dim lngA som LongPtr

Merk: LongPtr er ikke tilgjengelig i Excel 2007 eller tidligere.

Desimalverdier og lange datatyper

Lange variabler kan ikke lagre desimalverdier. Hvis du passerer et desimaltall en lang, blir desimaltallet avrundet for å fjerne desimalet.

Derfor, hvis du skulle kjøre prosedyren nedenfor:

12345678 Sub LngExampleB ()'erklærer den lange variabelenDim lngA som lang'fyll ut den lange variabelenlngA = 3524,12'vis meldingsboksenMsgBox lngASlutt Sub

Desimalverdien vil bli avrundet ned, og følgende melding returneres:

Denne koden nedenfor:

12345678 Sub LngExampleB ()'erklærer den lange variabelenDim lngA som lang'fyll ut den lange variabelenlngA = 3524,12'vis meldingsboksenMsgBox lngASlutt Sub

Ville returnere følgende meldingsboks (avrunding):

Desimal / dobbel datatype

Hvis du vil lagre en desimal, må du deklarere en variabel som tillater desimaler. Det er 3 datatyper du kan bruke - enkelt, dobbelt eller valuta.

1 Dim sngPris som singel
1 Dim dblPris som dobbel
1 Dim curPris som valuta

Enkelt datatypen vil avrunde desimaltegnet litt annerledes enn dobbelt- og valutatypen, så det er å foretrekke å bruke dobbelt til enkelt for nøyaktighet. En dobbel kan ha opptil 12 desimaler, mens valuta og enkelt kan ha opptil fire desimaler.

Erklær lang variabel på modul eller globalt nivå

I de foregående eksemplene har vi deklarert Long -variabelen innenfor en prosedyre. Variabler deklarert med en prosedyre kan bare brukes innenfor denne prosedyren.

I stedet kan du deklarere lange variabler på modul- eller globalt nivå.

Modulenivå

Modulenivå variabler deklareres øverst i kodemodulene med Dim uttalelse.

Disse variablene kan brukes med alle prosedyrer i den kodemodulen.

Globalt nivå

Globalt nivå variabler deklareres også øverst i kodemodulene. Imidlertid, i stedet for å bruke Dim uttalelse, bruk Offentlig uttalelse for å indikere at den lange variabelen er tilgjengelig for bruk i hele ditt VBA -prosjekt.

1 Offentlig lngA som lang

Hvis du skulle deklarere den lange variabelen på modulnivå og deretter prøve å bruke den i en annen modul, ville det oppstå en feil.

Men hvis du hadde brukt det offentlige søkeordet for å deklarere den lange variabelen, ville feilen ikke oppstå og prosedyren ville kjøre perfekt.

Format Lang lagret som streng

Det kan være et tidspunkt hvor du ønsker å formatere en lang datatype til en streng - for eksempel en dato, eller du vil kanskje vise et valutasymbol.

For å oppnå dette, bruker du Format -funksjonen.

Følgende prosedyre:

1234567891011 Sub TestLongToString ()'erklærer strengvariabelenDim strDate as string'erklær det lange og fyll ut verdienDim lngDato så lengelngDate = 44055'konverter lang til en streng formatert som en datostrDate = Format (lngDate, "dd mmmm åååå")'se resultatetDebug.Print strDateSlutt Sub

ville returnere resultatet nedenfor:

og følgende prosedyre

1234567891011 Sub TestLongtoCurrencyString ()'erklærer strengvariabelenDim strPenger som streng'erklær det lange og fyll ut verdienDim lngValue As LonglngValue = 44055'konverter langen til en streng med et valutasymbolstrMoney = Format (lngValue, "$#, ## 0")'se resultatetMsgBox strPengerSlutt Sub

vil returnere dette resultatet:

wave wave wave wave wave