VBA சந்தா வரம்பிற்கு வெளியே (ரன்-டைம் பிழை '9') | இந்த பிழை ஏன் ஏற்படுகிறது?

எக்செல் விபிஏ சந்தா வரம்பிற்கு வெளியே உள்ளது

ஒரு குறியீட்டில் இல்லாத ஒன்றை அல்லது ஒரு மாறியைக் குறிப்பிட முயற்சிக்கும்போது சந்தா என்பது விபிஏவில் நாம் சந்திக்கும் பிழையாகும், எடுத்துக்காட்டாக, நம்மிடம் x என்ற மாறி இல்லை என்று வைத்துக்கொள்வோம், ஆனால் x இல் msgbox செயல்பாட்டைப் பயன்படுத்துகிறோம் வரம்பு பிழையில் சந்தாவை சந்திக்கும்.

VBA சந்தா வரம்பில் பிழை ஏற்படுகிறது, ஏனெனில் நாங்கள் அணுக முயற்சிக்கும் பொருள் இல்லை. இது VBA குறியீட்டில் பிழை வகையாகும், இது “இயக்க நேர பிழை 9” ஆகும். திறமையான குறியீட்டை எழுதுவதற்கான கருத்துகளைப் புரிந்துகொள்வது முக்கியம், மேலும் குறியீட்டை திறம்பட பிழைத்திருத்த உங்கள் VBA குறியீட்டின் பிழையைப் புரிந்துகொள்வது இன்னும் முக்கியமானது.

உங்கள் குறியீட்டு பிழை மற்றும் நீங்கள் போகும்போது அந்த பிழை என்னவென்று உங்களுக்குத் தெரியாவிட்டால்.

நோய் என்னவென்று தெரியாமல் ஒரு மருத்துவர் தனது நோயாளிக்கு மருந்து கொடுக்க முடியாது. நிச்சயமாக மருத்துவர்கள் மற்றும் நோயாளிகளுக்கு, இருவருக்கும் ஒரு நோய் (பிழை) இருப்பதை அறிவார்கள், ஆனால் அதற்கு மருந்து கொடுப்பதை விட நோயை (பிழை) புரிந்துகொள்வது அவசியம். நீங்கள் பிழையை சரியாக புரிந்து கொள்ள முடிந்தால், தீர்வைக் கண்டுபிடிப்பது மிகவும் எளிதானது.

இந்த கட்டுரையில் இதேபோன்ற குறிப்பில், நாம் வழக்கமாக வழக்கத்தை எதிர்கொள்ளும் முக்கியமான பிழைகளில் ஒன்றைக் காண்போம், அதாவது எக்செல் வி.பி.ஏ.

எக்செல் விபிஏவில் வரம்பில் உள்ள பிழையில் சந்தா என்ன?

எடுத்துக்காட்டாக, பணிப்புத்தகம் இல்லாத தாளை நீங்கள் குறிப்பிடுகிறீர்கள் என்றால் எங்களுக்கு கிடைக்கும் இயக்க நேர பிழை 9: “சந்தா வரம்பிற்கு வெளியே”.

நீங்கள் முடிவு பொத்தானைக் கிளிக் செய்தால், அது துணை நடைமுறைக்கு முடிவடையும், நீங்கள் பிழைத்திருத்தத்தைக் கிளிக் செய்தால், அது ஒரு பிழையை சந்தித்த குறியீட்டு வரிக்கு உங்களை அழைத்துச் செல்லும், மேலும் மைக்ரோசாப்ட் வலைத்தள பக்கத்திற்கு உங்களை அழைத்துச் செல்லும்.

வரம்பில் இருந்து சந்தா ஏன் ஏற்படுகிறது?

மருந்தைப் பற்றி சிந்திப்பதற்கு முன் இறந்தவரைக் கண்டுபிடிக்க ஒரு மருத்துவராக நான் சொன்னது போல. குறியீட்டின் வரி நாம் உள்ளிட்ட பொருளைப் படிக்காதபோது VBA சந்தா வரம்பில் பிழை ஏற்படுகிறது.

எடுத்துக்காட்டாக, கீழேயுள்ள படத்தைப் பாருங்கள், என்னிடம் தாள் 1, தாள் 2, தாள் 3 என மூன்று தாள்கள் உள்ளன.

இப்போது குறியீட்டில், “விற்பனை” என்ற தாளைத் தேர்ந்தெடுக்க குறியீட்டை எழுதியுள்ளேன்.

குறியீடு:

 துணை மேக்ரோ 2 () தாள்கள் ("விற்பனை"). இறுதி துணை என்பதைத் தேர்ந்தெடுக்கவும் 

இந்த குறியீட்டை நான் F5 விசையைப் பயன்படுத்தி அல்லது கைமுறையாக இயக்கினால், நான் அதைப் பெறுவேன் இயக்க நேர பிழை 9: “சந்தா வரம்பிற்கு வெளியே”.

பணிப்புத்தகத்தில் இல்லாத “விற்பனை” என்ற பணித்தாள் பொருளை அணுக முயற்சித்ததே இதற்குக் காரணம். குறியீட்டை இயக்கும் போது இந்த பிழை ஏற்பட்டதால் இது ஒரு ரன் டைம் பிழை.

நாம் பெறாத மற்றொரு பொதுவான சந்தா பிழை, அங்கு இல்லாத பணிப்புத்தகத்தைக் குறிப்பிடும்போது. உதாரணமாக கீழே உள்ள குறியீட்டைப் பாருங்கள்.

குறியீடு:

 துணை மேக்ரோ 1 () மங்கலான Wb பணிப்புத்தகமாக அமைத்தல் Wb = பணிப்புத்தகங்கள் ("சம்பள தாள். Xlsx") முடிவு துணை 

மேலே உள்ள குறியீடு மாறி WB “சம்பள தாள். Xlsx” என்ற பணிப்புத்தகத்திற்கு சமமாக இருக்க வேண்டும் என்று கூறுகிறது. இப்போதைக்கு, இந்த பணிப்புத்தகம் எனது கணினியில் திறக்கப்படவில்லை. நான் இந்த குறியீட்டை கைமுறையாக அல்லது F5 விசை மூலம் இயக்கினால், நான் பெறுவேன் இயக்க நேர பிழை 9: “சந்தா வரம்பிற்கு வெளியே”.

இது நான் குறிப்பிடும் பணிப்புத்தகத்தின் காரணமாகும், இது இப்போது திறக்கப்படவில்லை அல்லது இல்லை.

வரிசைகளில் VBA சந்தா பிழை

வரிசையை டைனமிக் வரிசை என்று நீங்கள் அறிவிக்கும்போது, ​​ஒரு வரிசையின் நீளத்தை வரையறுக்க நீங்கள் VBA இல் DIM அல்லது REDIM என்ற வார்த்தையைப் பயன்படுத்தாவிட்டால், நாங்கள் வழக்கமாக VBA சந்தாவை வரம்பு பிழையில் இருந்து பெறுவோம். எடுத்துக்காட்டாக, கீழே உள்ள குறியீட்டைப் பாருங்கள்.

குறியீடு:

 துணை மேக்ரோ 3 () டிம் மைஆரே ​​() நீண்ட மைஆரே ​​(1) = 25 முடிவு துணை 

மேலே உள்ளவற்றில், நான் மாறியை ஒரு வரிசையாக அறிவித்துள்ளேன், ஆனால் தொடக்க மற்றும் முடிவு புள்ளியை நான் ஒதுக்கவில்லை, மாறாக முதல் வரிசைக்கு 25 மதிப்பை நேராக ஒதுக்கியுள்ளேன்.

நான் இந்த குறியீட்டை F5 விசையைப் பயன்படுத்தி அல்லது கைமுறையாக இயக்கினால், எங்களுக்கு கிடைக்கும் இயக்க நேர பிழை 9: “சந்தா வரம்பிற்கு வெளியே”.

இந்த சிக்கலை சரிசெய்ய நான் ரெடிம் வார்த்தையைப் பயன்படுத்தி ஒரு வரிசையின் நீளத்தை ஒதுக்க வேண்டும்.

குறியீடு:

 சப் மேக்ரோ 3 () டிம் மைஆரே ​​() நீண்ட ரெடிம் மைஆரே ​​(1 முதல் 5 வரை) மைஆரே ​​(1) = 25 எண்ட் சப் 

இந்த குறியீடு எந்த பிழையும் கொடுக்கவில்லை.

VBA குறியீட்டின் முடிவில் பிழைகள் காண்பிப்பது எப்படி?

குறியீடு இயங்கும் போது பிழையைப் பார்க்க விரும்பவில்லை, ஆனால் இறுதியில் பிழை பட்டியல் தேவைப்பட்டால், நீங்கள் “ஆன் பிழை மறுதொடக்கம்” பிழை கையாளுதலைப் பயன்படுத்த வேண்டும். கீழே உள்ள குறியீட்டைப் பாருங்கள்.

குறியீடு:

 துணை மேக்ரோ 1 () மங்கலான Wb பணிப்புத்தகமாக பிழையைத் தொடரவும் அடுத்த தொகுப்பு Wb = பணிப்புத்தகங்கள் ("சம்பளத் தாள். Xlsx") MsgBox Err.Description End Sub 

நாம் பார்த்தபடி இந்த குறியீடு எறியும் இயக்க நேரம் பிழை 9: “சந்தா வரம்பிற்கு வெளியே எக்செல் வி.பி.ஏ.. ஆனால் பிழையை கையாளுபவர் ஆன் எர்ரர் ரெஸ்யூம் நெக்ஸ்ட் விபிஏ குறியீட்டை இயக்கும் போது நாம் எந்த பிழை செய்திகளையும் பெற மாட்டோம், மாறாக இறுதி செய்தி பெட்டியில் இது போன்ற பிழை விளக்கத்தை எனக்குக் காட்டுகிறது.

எக்செல் விபிஏ சந்தாவை ரேஞ்ச் வார்ப்புருவுக்கு வெளியே பதிவிறக்கம் செய்யலாம்: - விபிஏ சந்தா வரம்பு வார்ப்புருவுக்கு வெளியே