VBA CLng

Excel VBA CLng-functie

"CLNG" betekent "Converteren naar lang" gegevenstype. De limiet voor het gegevenstype voor gehele getallen ligt tussen -32768 en 32767, dus als u meer wilt opslaan in deze variabelen, moeten we het gegevenstype LONG in VBA gebruiken.

Variabelen zijn de sleutel in elke programmeertaal en VBA is ook niet anders. Zonder variabelen te gebruiken is het bijna een onmogelijke taak om lange codes te schrijven. Als variabelen belangrijk zijn, dan is de datatype-variabele die we aan deze variabelen toewijzen zelfs nog belangrijker omdat het datatype dat we eraan toewijzen het eindresultaat is dat we krijgen.

Vaak kunnen we de numerieke gegevens toewijzen als "String", zodat dit een fout veroorzaakt tijdens het uitvoeren van berekeningen, dus door conversiefuncties te gebruiken, kunnen we het gegevenstype dat we willen converteren. Veelgebruikte converterfuncties zijn CLng, CInt, CDbl, CDate, CDec in vba. In dit artikel zullen we u laten zien over de conversiefunctie van het gegevenstype gehele getallen “CLNG”.

Syntaxis

Hieronder staat de syntaxis van de CLNG-functie.

  • Expressie is niets anders dan de waarde of de variabele die we willen converteren naar het LONG-gegevenstype.

Opmerking: de waarde die we proberen te converteren, moet een numerieke waarde zijn, iets anders dan een numerieke waarde zal een 'Run Time Error 13: Type Mismatch' veroorzaken.

Voorbeelden om de CLng-functie in VBA te gebruiken

U kunt deze VBA CLNG Excel-sjabloon hier downloaden - VBA CLNG Excel-sjabloon

Voorbeeld 1

Nu zullen we zien hoe we de opgeslagen tekstwaarde converteren naar het gegevenstype "Lang".

Kijk voor een voorbeeld naar de onderstaande code.

Code:

 Sub CLNG_Example1 () Dim LongNumber As String Dim LongResult As Long LongNumber = "2564589" LongResult = CLng (LongNumber) MsgBox LongResult End Sub 

Bestudeer de code dus nu nauwkeurig om te begrijpen hoe dit werkt.

Ten eerste hebben we respectievelijk twee variabelen String en Long verklaard.

Code:

 Dim LongNumber As String Dim LongResult As Long 

Voor de stringvariabele hebben we het waardegetal toegewezen, maar tussen dubbele aanhalingstekens, dus wat dit zal doen is dat het nummer "2564589" als een string wordt behandeld, niet als "Long" variabele. Nu hebben we voor de andere variabele LongResult de functie Clng (LongNumber) gebruikt om het opgeslagen tekenreeksnummer naar een LONG-variabele te converteren.

In het volgende berichtvenster wordt het resultaat weergegeven als een LANG-getal dat wordt geconverteerd van een string naar een lang datatype.

Uitgang:

Voorbeeld # 2

Bekijk nu de onderstaande code.

Code:

 Sub CLNG_Example2 () Dim LongNumber As String Dim LongResult As Long LongNumber = "Long Number" LongResult = CLng (LongNumber) MsgBox LongResult End Sub 

Dit zou ons het resultaat moeten geven als "Type Mismatch" .

Begrijpen waarom de fout optreedt, is erg belangrijk om de fout op te lossen. Als je goed kijkt naar de variabelen voor de eerste variabele LongNumber, we hebben de tekstwaarde toegewezen als "Long Number", dan hebben we de excel VBA CLNG-functie gebruikt om dit naar het LONG-gegevenstype te converteren.

De reden waarom we deze fout hebben gekregen, is dat het LONG-gegevenstype alleen een numeriek gegevenstype kan accepteren, aangezien we een tekenreekswaarde aan de variabele hebben geleverd, het de tekenreekswaarde of tekstwaarde niet kan converteren naar een lang gegevenstype, dus het geeft de fout als " Type komt niet overeen ”.

Voorbeeld # 3

Nog een fout die we krijgen met het LONG-gegevenstype is "Overloopfout in vba", dat wil zeggen dat het lange variabele gegevenstype waarden kan bevatten van -2.147.483.648 tot 2.147.483.647. Elke waarde daarboven veroorzaakt dus een overloopfout.

Kijk voor een voorbeeld naar de onderstaande code.

Code:

 Sub CLNG_Example3 () Dim LongNumber As String Dim LongResult As Long LongNumber = "25645890003" LongResult = CLng (LongNumber) MsgBox LongResult End Sub 

Voor de variabele "LongNumber" heb ik het nummer "25645890003" toegewezen dat de limiet van het gegevenstype "Long" overschrijdt. Wanneer we de bovenstaande code uitvoeren, zal er een "Overflow" -fout optreden.

Dus als u een ander gegevenstype naar een lang gegevenstype converteert, moeten we met al het bovenstaande in gedachten houden.

Ding om hier te onthouden

  • CLNG staat voor convert to long.
  • Deze functie converteert het andere gegevenstype naar een lang gegevenstype.
  • U moet de limiet van het lange gegevenstype kennen om overloopfouten te voorkomen.