VBA CLng funkció - Hogyan kell használni a CLng funkciót? (példákkal)

Tartalomjegyzék

Excel VBA CLng funkció

A „CLNG” jelentése „Konvertálás hosszúra” adattípus. Az egész adattípus korlátja -32768 és 32767 között van, tehát bármi túllépést, amelyet ezekhez a változókhoz szeretne tárolni, LONG adattípust kell használnunk a VBA-ban.

A változók elengedhetetlenek minden programozási nyelvben, és a VBA sem különbözik ettől. Változók használata nélkül szinte lehetetlen feladat hosszú kódokat írni. Ha a változók elengedhetetlenek, akkor az ezekhez a változókhoz rendelt adattípus-változó még kritikusabb, mert az adattípus, amelyet nekik adunk, az az eredmény, amelyet kapunk.

Gyakran előfordul, hogy a numerikus adatokat „String” -ként rendeljük hozzá, így ez hibát okoz a számítások során, így a konverziós függvények használatával átalakíthatjuk a kívánt adattípust. Az általánosan használt átalakító funkciók a CLng, CInt, CDbl, CDate, VBA VCD-ben. Ebben a cikkben bemutatjuk a „CLNG” egész adattípus-átalakító függvényt.

Szintaxis

Az alábbiakban látható a CLNG függvény szintaxisa.

  • A kifejezés nem más, mint az az érték vagy a változó, amelyet LONG adattípussá kívánunk konvertálni.

Megjegyzés: Az átalakítani próbált értéknek számszerű értéktől eltérő értéknek kell lennie, ami a „13. futási hiba: Típus-eltérés” hibát idézi elő.

Példák a CLng függvény használatára a VBA-ban

1. példa

Most meglátjuk, hogyan alakíthatjuk át a tárolt szöveges értéket „Hosszú” adattípussá.

Nézze meg például az alábbi kódot.

Kód:

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

Tehát most vizsgálja meg alaposan a kódot, hogy megértse, hogyan működik ez.

Először két változót deklaráltunk: String és Long.

Kód:

Dim LongNumber As String Dim LongEredmény olyan hosszú

A karakterlánc változóhoz az érték számát rendeltük, de dupla idézőjelben, így ez azt fogja tenni, hogy a „2564589” számot karakterláncként, nem pedig „Long” változóként kezeli. A másik változó, a LongResult esetében a Clng (LongNumber) függvényt használtuk a sorban tárolt szám LONG változóvá konvertálására.

A következő üzenetmezőben az eredmény LONG számként jelenik meg, karakterláncból hosszú adattípusra konvertálva.

Kimenet:

2. példa

Most vessen egy pillantást az alábbi kódra.

Kód:

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

Ennek meg kell adnia az eredményt „Type Mismatch” néven.

A hiba kijavításának alapvető megértése a hiba előfordulásának oka. Amikor alaposan megvizsgálja az első LongNumber változó változóit, a szöveges értéket „Hosszú számként” rendeltük hozzá, majd az excel VBA CLNG függvényt alkalmaztuk ennek átalakítására LONG adattípusra.

Miért kaptuk ezt a hibát, az az, hogy a LONG adattípus csak numerikus adattípust tud elfogadni, mivel karakterlánc-értéket adtunk meg a változónak, nem tudja a karakterláncot vagy a szöveges értéket hosszú adattípussá konvertálni. Ezért a hibát „Type Mismatch” -ként adja meg.

3. példa

Még egy hiba, amelyet a LONG adattípussal kapcsolatban kapunk, a „Túlcsordulási hiba a VBA-ban”, azaz a Hosszú változó adattípus -2 147 483 648 2 147 483 647 értéket tartalmazhat. Tehát minden e fölötti összeg túlcsordulási hibát okoz.

Nézze meg például az alábbi kódot.

Kód:

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

A „LongNumber” változóhoz hozzárendeltem a „25645890003” számot, amely meghaladja a „Long” adattípus korlátját. Amikor a fenti kódot futtatjuk, „túlcsordulás” hibát fog tapasztalni .

Tehát, ha bármilyen más adattípust hosszú adattípusra konvertálunk, akkor a fenti dolgokat szem előtt kell tartanunk.

A dolog, amire itt emlékezni kell

  • A CLNG a hosszúra konvertálást jelenti.
  • Ez a függvény a másik adattípust hosszú adattá alakítja.
  • A túlcsordulási hibák elkerülése érdekében ismernie kell a kiterjesztett adattípus korlátját.

érdekes cikkek...