VBA perpildymo klaida Kaip ištaisyti 6 vykdymo laiko perpildymo klaidą?
„Excel VBA“ perpildymo klaida
Klaidos yra neatsiejama bet kurios kodavimo kalbos dalis, tačiau sužinojus, kodėl atsiranda ši klaida, interviu metu galite atsiskirti nuo minios. Klaidos nėra keistos VBA kodavimui, klaidos nėra tyčinės, todėl sunku surasti klaidos priežastį. VBA turime keletą iš anksto nustatytų klaidų ir žinodami apie jas, labai greitai ištaisote klaidą. Šiame straipsnyje mes jums parodysime apie RUN TIME ERROR 6: OverFlow. Vadovaukitės visu straipsniu, kad sužinotumėte apie klaidą, VBA perpildymo klaidos priežastis ir kaip jas ištaisyti.
Kas yra 6 vykdymo laiko klaida: perpildymo klaida VBA?
Kai deklaruojame kintamąjį, jiems priskiriame duomenų tipą. Turėtume visiškai žinoti kiekvieno duomenų tipo privalumus ir trūkumus. Čia paveikslėlyje atsiranda „Run Time Error 6: OverFlow“. Kai perkrausime duomenų tipą verte, kuri yra didesnė už duomenų tipo talpą, gausime šią klaidą.
Pvz .: Jei deklaruosite kintamąjį kaip baitą.
Blankus skaičius kaip baitas
Baitų duomenų tipas gali turėti reikšmes nuo 0 iki 255. Dabar vertę priskirsiu kaip 240.
Skaičius = 240
Tai turėtų gerai veikti, nes mūsų paskirta vertė yra mažesnė nei Baito vertės riba - 255. Tuo momentu, kai priskiriame vertę, kuri yra didesnė nei 255, įvyksta „Run Time Error 6“: „OverFlow“ klaida.
Tai yra bendra „Run Time Error 6: OverFlow“ apžvalga. Kai kuriuos pavyzdžius pamatysime išsamiai.
6 vykdymo laiko klaidos pavyzdžiai: perpildymas VBA
Pažiūrėkime keletą VBA perpildymo klaidos „Excel“ pavyzdžių.
1 pavyzdys: pertekėjimo klaida naudojant baitų duomenų tipą
Kaip sakiau, svarbu žinoti VBA duomenų tipo, kurį ketiname naudoti, pliusus ir minusus. Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.
Kodas:
Sub OverFlowError_Example1 () Dimensijos numeris kaip baitų skaičius = 256 MsgBox Number End Sub
Kintamajam „Skaičius“ priskyriau vertę kaip 256. Kai paleisiu šį kodą, gausime žemiau pateiktą klaidą.
Taip yra todėl, kad duomenų tipo „ Baitas“ reikšmės gali būti nuo 0 iki 255. Taigi tai sukelia klaidą. Norėdami ištaisyti klaidą, turime pakeisti duomenų tipą arba sumažinti vertę, kurią priskyrėme kintamajam „Skaičius“.
2 pavyzdys: VBA perpildymo klaida su sveikojo duomenų tipu
VBA sveikasis skaičius yra duomenų tipas, kuriame gali būti reikšmės nuo -32768 iki 32767. Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.
Kodas:
Sub OverFlowError_Example2 () Dim MyValue as Integer MyValue = 25656 MsgBox MyValue End Sub
Kai paleisiu šį kodą, pranešimo laukelyje gausime kintamojo „MyValue“ vertę, ty 25656.
Dabar aš priskirsiu skaičių kintamajam kaip „45654“.
Kodas:
Sub OverFlowError_Example2 () Dim MyValue as Integer MyValue = 45654 MsgBox MyValue End Sub
Dabar, jei bandysiu paleisti kodą, tai sukels klaidą, nes mūsų deklaruotame duomenų tipe gali būti ne daugiau kaip 32767 teigiamiems skaičiams, o neigiamų skaičių riba yra -32768.
3 pavyzdys: VBA perpildymo klaida naudojant ilgą duomenų tipą
Ilgas duomenų tipas yra dažniausiai naudojamas „Excel VBA“ duomenų tipas. Tai gali turėti reikšmes nuo –2 147 483 648 iki 2 147 486 647. Viskas, kas aukščiau, sukels klaidą.
Kodas:
Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = 5000 * 457 MsgBox MyValue End Sub
Tai sukels perpildymo klaidą.
Norėdami išspręsti šią problemą, turime naudoti funkciją CLNG VBA. Žemiau pateikiamas to paties pavyzdys.
Kodas:
Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = CLng (5000) * 457 MsgBox MyValue End Sub
Tai turėtų gerai veikti.
Tai yra „Run Time Error 6: OverFlow“ apžvalga . Norėdami išspręsti šią klaidą, turime visiškai žinoti duomenų tipus. Taigi grįžkite prie pagrindų, atlikite pagrindus iškart, tada viskas stovės į savo vietas.
Šį „VBA Overflow Error Excel“ šabloną galite atsisiųsti čia - „VBA OverFlow Error Excel“ šablonas