VBA CLng

Excel VBA CLng-funktion

”CLNG” betyder datatyp ”Konvertera till lång”. Heltalsdatatypsgräns är mellan -32768 till 32767, så allt överflöd som du vill lagra till dessa variabler måste vi använda LONG datatyp i VBA.

Variabler är viktiga i vilket programmeringsspråk som helst och VBA skiljer sig inte heller. Utan att använda variabler är det nästan en omöjlig uppgift att skriva långa koder. Om variabler är viktiga är datatypvariabeln som vi tilldelar dessa variabler ännu viktigare eftersom datatypen som vi tilldelar dem är slutresultatet som vi får.

Ofta kan vi tilldela numeriska data som "String" så detta kommer att kasta ett fel när vi gör beräkningar, så genom att använda konverteringsfunktioner kan vi konvertera den datatyp som vi vill ha. Vanligen använda omvandlarfunktioner är CLng, CInt, CDbl, CDate, CDec in vba. I den här artikeln visar vi dig om konverteringsfunktionen för heltal datatyp ”CLNG”.

Syntax

Nedan är syntaxen för CLNG-funktionen.

  • Uttryck är inget annat än värdet eller variabeln som vi vill konvertera till LONG-datatypen.

Obs: Värde som vi försöker konvertera bör vara ett numeriskt allt annat än numeriskt värde kommer att orsaka ett "Run Time Error 13: Type Mismatch"

Exempel för att använda CLng-funktionen i VBA

Du kan ladda ner denna VBA CLNG Excel-mall här - VBA CLNG Excel-mall

Exempel nr 1

Nu får vi se hur vi konverterar det lagrade textvärdet till datatypen "Lång".

För ett exempel, se nedanstående kod.

Koda:

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

Så undersök nu koden noggrant för att förstå hur det fungerar.

Först har vi deklarerat två variabler Sträng respektive Lång.

Koda:

 Dim LongNumber Som String Dim LongResultat Som Long 

För strängvariabeln har vi tilldelat värdet men i dubbla citat, så vad detta kommer att göra är att det kommer att behandla siffran "2564589" som en sträng, inte som "Lång" variabel. Nu för den andra variabeln LongResult har vi använt Clng (LongNumber) -funktionen för att konvertera det stränglagrade numret till en LONG-variabel.

Nästa meddelanderuta visar resultatet som ett LÅNGT nummer som konverteras från sträng till lång datatyp.

Produktion:

Exempel 2

Ta nu en titt på koden nedan.

Koda:

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

Detta borde ge oss resultatet som "Type Mismatch" .

Att förstå varför felet inträffar är mycket viktigt för att åtgärda felet. När du tittar noga på variablerna för den första variabeln LongNumber har vi tilldelat textvärdet som “Long Number” då har vi använt excel VBA CLNG-funktionen för att konvertera detta till LONG-datatypen.

Anledningen till att vi fick det här felet är att LONG-datatypen endast kan acceptera numerisk datatyp eftersom vi har levererat strängvärde till variabeln, det kan inte konvertera strängvärdet eller textvärdet till en lång datatyp, så det ger felet som “ Typmatchningsfel".

Exempel # 3

Ett ytterligare fel vi får med LONG datatyp är “Overflow Error in vba” dvs. lång variabel datatyp kan innehålla värden från -2,147,483,648 till 2,147,483,647. Så något värde ovanför detta kommer att orsaka ett överflödsfel.

För ett exempel, se nedanstående kod.

Koda:

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

För variabeln "LongNumber" har jag tilldelat numret "25645890003" som är över gränsen för datatypen "Long". När vi kör ovanstående kod kommer det att uppstå ett "Overflow" -fel.

Så när du konverterar någon annan datatyp till lång datatyp måste vi komma ihåg alla ovanstående saker.

Saker att komma ihåg här

  • CLNG står för konvertera till lång.
  • Denna funktion konverterar den andra datatypen till en lång datatyp.
  • Du måste veta gränsen för den långa datatypen för att förhindra överflödsfel.