VBA நீண்ட (எடுத்துக்காட்டு) | எக்செல் விபிஏவில் நீண்ட தரவு வகைக்கு படி வழிகாட்டி
VBA இல் நீண்ட தரவு வகை என்றால் என்ன?
நீண்டது VBA இல் ஒரு தரவு வகை இது எண் மதிப்புகளைச் சேமிக்கப் பயன்படுகிறது, முழு எண் எண் மதிப்புகளையும் வைத்திருப்பதை நாங்கள் அறிவோம், ஆனால் நீண்ட தரவு முழு எண்ணிலிருந்து வேறுபட்டது, ஏனெனில் தரவு சேமிப்பதற்கான வரம்பு மிகப் பெரியது, நீண்ட தரவு வகையிலும் நீண்ட தரவு வகையிலும் நாம் தசம மதிப்புகளை வைத்திருக்க முடியும் இது ஒரு உள்ளடிக்கிய தரவு வகையாகும்.
“நீண்ட” பெயர் சொல்வது போல், அது பெரிய விஷயத்தின் மதிப்பைக் கொண்டிருக்க வேண்டும். “நீண்ட” என்பது VBA எக்செல் இல் உள்ள ஒரு எண் தரவு வகை.
எக்செல் விபிஏவில் உள்ள நீண்ட தரவு வகை நேர்மறை எண்களுக்கு 0 முதல் 2, 147, 483, 647 வரையிலான மதிப்புகளை வைத்திருக்க முடியும், மேலும் எதிர்மறை எண்ணுக்கு இது 0 முதல் -2, 147, 483, 648 வரை வைத்திருக்க முடியும்.
VBA நீண்ட தரவு வகைக்கு உங்கள் கணினியின் 4 பைட்டுகள் நினைவக சேமிப்பு தேவைப்படுகிறது, இது இரட்டை முழு தரவு வகை மாறி நினைவகம் (2 பைட்டுகள்) மற்றும் பாதி இரட்டை தரவு வகை மாறி நினைவகம் (8 பைட்டுகள்)
எனது குறுகிய வாழ்க்கையில் ஒரு VBA நீண்ட தரவு வகையின் வரம்பை முழுமையாகப் பயன்படுத்த விரும்பும் ஒரு காட்சியை நான் பார்த்ததில்லை. ஆனால் அதை நன்றாக புரிந்து கொள்ள சில எடுத்துக்காட்டுகளை நான் உங்களுக்குக் காண்பிப்பேன்.
VBA நீண்ட தரவு வகையின் எடுத்துக்காட்டுகள்
எக்செல் விபிஏ நீண்ட தரவு வகையின் எடுத்துக்காட்டுகள் கீழே.
இந்த VBA நீண்ட தரவு வகை எக்செல் வார்ப்புருவை இங்கே பதிவிறக்கம் செய்யலாம் - VBA நீண்ட தரவு வகை எக்செல் வார்ப்புரு
VBA நீண்ட எடுத்துக்காட்டு # 1
மாறி தரவு வகையை “நீண்ட” என்று அறிவித்தவுடன், நீங்கள் -2, 147, 483, 648 முதல் 2, 147, 483, 648 வரை மதிப்புகளை ஒதுக்கலாம்.
எடுத்துக்காட்டாக, மாறியை நீண்ட தரவு வகையாக அறிவிக்கவும்.
குறியீடு:
துணை நீண்ட_உதவி 1 () மங்கலான கே என நீண்ட முடிவு துணை
பணித்தாளின் மொத்த வரிசை எண்ணிக்கையாக மதிப்பை ஒதுக்குவோம்.
எக்செல் பணித்தாள் குறியீட்டில் மொத்த எண்ணிக்கை வரிசைகளைப் பெற வேண்டும் “வரிசைகள். எண்ணுங்கள் ”
குறியீடு:
துணை நீண்ட_ உதாரணம் 1 () மங்கலான k நீளமாக k = வரிசைகள். எண்ணிக்கை முடிவு துணை
இப்போது செய்தி பெட்டியில் மதிப்பைக் காட்டு.
குறியீடு:
துணை நீண்ட_உதவி 1 () மங்கலான k நீளமாக k = வரிசைகள். எண்ணிக்கை MsgBox k முடிவு துணை
இந்த குறியீட்டை இயக்கி, பணித்தாளில் மொத்த வரிசைகள் என்ன என்பதைக் காண்க.
பணித்தாளில் 1 மில்லியனுக்கும் அதிகமான வரிசைகள் உள்ளன என்று அது கூறுகிறது.
இப்போது சிறந்த புரிதலுக்காக, தரவு வகையை LONG இலிருந்து INTEGER ஆக மாற்றுவேன்.
குறியீடு:
துணை நீண்ட_ எடுத்துக்காட்டு 1 () மங்கலான கே என முழு எண் k = வரிசைகள். எண்ணிக்கை MsgBox k முடிவு துணை
நான் VBA குறியீட்டை இயக்கினால் பிழை செய்தியை “வழிதல்” என்று பெறுவேன்.
VBA இல் இந்த பிழையைப் பெறுவதற்கான காரணம், “Integer” என்ற தரவு வகை -31768 முதல் 32767 வரையிலான மதிப்புகளை மட்டுமே வைத்திருக்க முடியும். இந்த வழக்கில் “வரிசைகள். எண்ணிக்கை ”என்பது“ முழு எண் ”மாறியின் வரம்பை விட அதிகமான எண்ணைத் தரும்.
32767 ஐ மட்டுமே வைத்திருக்கக்கூடிய மாறிக்கு 1 மில்லியனுக்கும் அதிகமான மதிப்பை ஒதுக்குவது இங்கே வழிதல் பிழையை ஏற்படுத்துகிறது.
VBA நீண்ட எடுத்துக்காட்டு # 2
நீண்ட மாறியைப் பயன்படுத்தி கடைசி வரிசையைக் கண்டறியவும்
பணித்தாளின் கடைசியாகப் பயன்படுத்தப்பட்ட வரிசையைக் கண்டுபிடிப்பது குறியீட்டு முறையின் மிக முக்கியமானது. பணித்தாளின் கடைசியாகப் பயன்படுத்தப்பட்ட வரிசையைக் கண்டுபிடிக்க மாறி அறிவிக்கப்பட வேண்டும். மாறியை அறிவிக்கும் போது மற்றும் தரவு வகையை ஒதுக்குவதற்கு சில பொது அறிவு தேவைப்படுகிறது.
கீழேயுள்ள படத்தில் காட்டப்பட்டுள்ளபடி 25000 வரிசைகளில் தரவு முனைகள் உள்ளன என்று வைத்துக் கொள்ளுங்கள்.
கடைசியாக பயன்படுத்தப்பட்ட வரிசை எண் 25000 என்று இப்போது எனக்குத் தெரியும், இதற்காக, எங்களுக்கு “நீண்ட” தரவு வகை தேவையில்லை, ஏனெனில் “INTEGER” தரவு வகை எனக்கு கடைசி வரிசையை தரும்.
உங்கள் தகவலுக்கு கீழே உள்ள குறியீட்டைப் பாருங்கள்.
குறியீடு:
துணை நீண்ட_உதவி 1 () மங்கலான கே என முழு எண் k = கலங்கள் (வரிசைகள். எண்ணிக்கை, 1) .எண்ட் (xlUp) .Row MsgBox k End Sub
நான் இந்த குறியீட்டை இயக்கினால், நான் தற்போது பணிபுரியும் பணித்தாளின் கடைசியாக பயன்படுத்தப்பட்ட வரிசை எண்ணைப் பெறுவேன்.
ஒரு குறியீட்டாளராக, எதிர்காலத்தில் உங்களிடம் இருக்கும் தரவின் அளவை அறிந்து கொள்வது அவசியம். ஏனெனில் இந்த நேரத்தில் தரவு 25000 வது வரிசையில் முடிவடையும், ஆனால் தரவு “முழு எண்” வரம்பைத் தாண்டி அதாவது 32767 க்கு மேல் அதிகரித்தால், அது வழிதல் பிழையை ஏற்படுத்துகிறது.
எடுத்துக்காட்டாக, தரவை 32768 வது வரிசைகளாக அதிகரிப்பேன்.
இப்போது நான் மீண்டும் அதே குறியீட்டை இயக்கினால் எனக்கு மதிப்பு கிடைக்காது, மாறாக கீழே உள்ள பிழையைப் பெறுவேன்.
"முழு எண்" மதிப்பின் வரம்பைத் தாண்டி நான் வரம்பை 1 ஆக உயர்த்தியுள்ளேன் என்பதை நினைவில் கொள்க, அதனால் எனக்கு வழிதல் பிழை ஏற்பட்டது.
எனவே நீங்கள் ஒரு தரவு வகையை மாறிக்கு ஒதுக்குவதற்கு முன் உங்கள் தரவின் அளவை அறிந்து கொள்வது அவசியம். எதிர்காலத்தில் உங்கள் தரவு அளவைப் பற்றி சிந்திக்காமல் மாறியை “நீண்டது” என்று அறிவிப்பது எப்போதும் சிறந்த வழி.
எக்செல் விபிஏ நீண்ட மாறிக்கான மாற்றுகள்
நீண்ட மாறியின் வரம்பை விட மதிப்பை அதிகமாக வைத்திருக்க விரும்பினால் எதைப் பற்றி நீங்கள் ஏற்கனவே யோசித்துக்கொண்டிருக்க வேண்டும். இதற்காக, நாங்கள் வெவ்வேறு தரவு வகைகளைப் பயன்படுத்த வேண்டும், அதாவது VBA “சரம்” அல்லது “மாறுபாடு”
இது 2147483647 என்ற எண்ணைக் கடக்கும் தருணத்தை நினைவில் கொள்ளுங்கள், நீண்ட தரவு வகையுடன் VBA இல் வழிதல் பிழையைப் பெறுவோம். இந்த எண்ணை விட அதிகமாக சேமிக்க “சரம்” அல்லது “மாறுபாடு” தரவு வகையைப் பயன்படுத்த வேண்டும்.
சரத்திற்கு
குறியீடு:
துணை நீண்ட_உதவி 2 () மங்கலான கே சரம் k = 2147483648 MsgBox k முடிவு துணை
மாறுபாட்டிற்கு
குறியீடு:
துணை நீண்ட_உதவி 2 () மங்கலான கே என மாறுபாடு k = 2147483648 MsgBox k End Sub
மேலே உள்ள குறியீடுகளை நாம் இயக்கும்போது, அது குறிப்பிட்ட எண்ணைக் காண்பிக்கும்.