VBA ஓவர்ஃப்ளோ பிழை | ரன் டைம் வழிதல் பிழை 6 ஐ எவ்வாறு சரிசெய்வது?
எக்செல் விபிஏ ஓவர்ஃப்ளோ பிழை
பிழைகள் எந்த குறியீட்டு மொழியின் ஒரு பகுதியாகும், ஆனால் அந்த பிழை ஏன் வருகிறது என்பதைக் கண்டுபிடிப்பதே நேர்காணல்களில் கூட்டத்திலிருந்து விலகி நிற்க வைக்கிறது. பிழைகள் VBA குறியீட்டுக்கு விசித்திரமானவை அல்ல, பிழைகள் வேண்டுமென்றே இல்லை, இதனால் பிழைக்கான காரணத்தைக் கண்டுபிடிப்பது கடினமான பணியை செய்கிறது. VBA இல் எங்களிடம் முன்பே வரையறுக்கப்பட்ட சில பிழைகள் உள்ளன, அவற்றைப் பற்றி அறிந்துகொள்வது பிழையை மிக விரைவாக சரிசெய்ய வைக்கிறது. இந்த கட்டுரையில், RUN TIME ERROR 6: OverFlow பற்றி காண்பிப்போம். பிழை, விபிஏ வழிதல் பிழைக்கான காரணங்கள் மற்றும் அவற்றை எவ்வாறு சரிசெய்வது என்பது பற்றி அறிய முழு கட்டுரையையும் பின்பற்றவும்.
ரன் டைம் பிழை 6 என்றால் என்ன: விபிஏவில் வழிதல் பிழை?
நாம் மாறியை அறிவிக்கும்போது அவர்களுக்கு ஒரு தரவு வகையை ஒதுக்குகிறோம். ஒவ்வொரு தரவு வகையின் நன்மை தீமைகள் குறித்து நாம் முழுமையாக அறிந்திருக்க வேண்டும். ரன் டைம் பிழை 6: ஓவர்ஃப்ளோ படத்தில் வருகிறது. தரவு வகையின் திறனை விட அதிகமான மதிப்புடன் தரவு வகையை நாம் ஓவர்லோட் செய்யும் போது இந்த பிழையைப் பெறுவோம்.
உதாரணமாக: நீங்கள் மாறியை அறிவித்தால் பைட்.
மங்கலான எண் பைட்டாக
பைட் தரவு வகை 0 முதல் 255 வரை மதிப்புகளை வைத்திருக்க முடியும். இப்போது நான் மதிப்பை 240 ஆக ஒதுக்குவேன்.
எண் = 240
இது சிறப்பாக செயல்பட வேண்டும், ஏனென்றால் நாங்கள் ஒதுக்கியுள்ள மதிப்பு பைட்டின் மதிப்பு 255 இன் வரம்பை விட குறைவாக உள்ளது. 255 ஐ விட அதிகமான மதிப்பை நாம் ஒதுக்கும் தருணம், இது பிழைக்கு வழிவகுக்கிறது இயக்க நேர பிழை 6: ஓவர்ஃப்ளோ.
இது ரன் டைம் பிழை 6: ஓவர்ஃப்ளோவின் பொதுவான கண்ணோட்டமாகும். சில எடுத்துக்காட்டுகளை விரிவாகப் பார்ப்போம்.
ரன் டைம் பிழை 6 இன் எடுத்துக்காட்டுகள்: VBA இல் ஓவர்ஃப்ளோ
எக்செல் இல் VBA ஓவர்ஃப்ளோ பிழையின் சில எடுத்துக்காட்டுகளைப் பார்ப்போம்.
எடுத்துக்காட்டு 1: பைட் தரவு வகையுடன் ஓவர்ஃப்ளோ பிழை
நான் சொன்னது போல் நாம் பயன்படுத்தப் போகும் VBA தரவு வகையின் நன்மை தீமைகளை அறிந்து கொள்வது முக்கியம். உதாரணமாக கீழே உள்ள குறியீட்டைப் பாருங்கள்.
குறியீடு:
துணை OverFlowError_Example1 () மங்கலான எண் பைட் எண்ணாக = 256 MsgBox எண் முடிவு துணை
“எண்” என்ற மாறிக்கு நான் மதிப்பை 256 என ஒதுக்கியுள்ளேன். இந்த குறியீட்டை இயக்கும்போது கீழேயுள்ள பிழையைப் பெறுவோம்.
தரவு வகை என்பதால் இது பைட் 0 முதல் 255 வரை மதிப்புகளை வைத்திருக்க முடியும். எனவே இது பிழையை ஏற்படுத்துகிறது. பிழையை சரிசெய்ய நாம் தரவு வகையை மாற்ற வேண்டும் அல்லது “எண்” என்ற மாறிக்கு நாம் ஒதுக்கிய மதிப்பைக் குறைக்க வேண்டும்.
எடுத்துக்காட்டு 2: முழு தரவு வகையுடன் VBA ஓவர்ஃப்ளோ பிழை
VBA முழு எண் -32768 முதல் 32767 வரை மதிப்புகளைக் கொண்டிருக்கக்கூடிய தரவு வகை. எடுத்துக்காட்டாக, கீழே உள்ள குறியீட்டைப் பாருங்கள்.
குறியீடு:
துணை ஓவர்ஃப்ளோ எர்ரர்_எக்சாம்பிள் 2 () மங்கலான MyValue ஆக முழு எண் MyValue = 25656 MsgBox MyValue End Sub
நான் இந்த குறியீட்டை இயக்கும்போது செய்தி பெட்டியில் “MyValue” என்ற மாறி மதிப்பைப் பெறுவோம், அதாவது 25656.
இப்போது நான் "45654" என மாறிக்கு எண்ணை மீண்டும் ஒதுக்குவேன்.
குறியீடு:
துணை ஓவர்ஃப்ளோ எர்ரர்_எக்சாம்பிள் 2 () மங்கலான MyValue ஆக முழு எண் MyValue = 45654 MsgBox MyValue End Sub
இப்போது நான் குறியீட்டை இயக்க முயற்சித்தால் அது ஒரு பிழையை ஏற்படுத்தும், ஏனெனில் நாங்கள் அறிவித்த தரவு வகை நேர்மறை எண்களுக்கு அதிகபட்சம் 32767 ஐ மட்டுமே வைத்திருக்க முடியும் மற்றும் எதிர்மறை எண்களின் வரம்பு -32768 ஆகும்.
எடுத்துக்காட்டு 3: நீண்ட தரவு வகையுடன் VBA ஓவர்ஃப்ளோ பிழை
எக்செல் விபிஏவில் பெரும்பாலும் பயன்படுத்தப்படும் தரவு வகை நீண்ட தரவு வகை. இது –2,147,483,648 முதல் 2,147,486,647 வரை மதிப்புகளைக் கொண்டிருக்கலாம். அதற்கு மேலே உள்ள எதுவும் பிழையை ஏற்படுத்தும்.
குறியீடு:
துணை OverFlowError_Example3 () மங்கலான MyValue நீண்ட MyValue = 5000 * 457 MsgBox MyValue End Sub
இது வழிதல் பிழையை ஏற்படுத்தும்.
இந்த சிக்கலை சரிசெய்ய நாம் VBA இல் CLNG செயல்பாட்டைப் பயன்படுத்த வேண்டும். அதற்கான உதாரணம் கீழே.
குறியீடு:
துணை OverFlowError_Example3 () மங்கலான MyValue நீண்ட MyValue = CLng (5000) * 457 MsgBox MyValue End Sub
இது நன்றாக வேலை செய்ய வேண்டும்.
இது ரன் டைம் பிழை 6: ஓவர்ஃப்ளோவின் கண்ணோட்டமாகும். இந்த பிழையை தீர்க்க தரவு வகைகளை நாம் முழுமையாக அறிந்து கொள்ள வேண்டும். எனவே அடிப்படைகளுக்குத் திரும்பிச் செல்லுங்கள், அடிப்படைகளைச் செய்யுங்கள், பிறகு எல்லாம் இடத்தில் விழும்.
இந்த VBA வழிதல் பிழை எக்செல் வார்ப்புருவை இங்கே பதிவிறக்கம் செய்யலாம் - VBA ஓவர்ஃப்ளோ பிழை எக்செல் வார்ப்புரு