பயன்பாட்டிற்கான விஷுவல் பேசிக்கில் வரிசைகள்

பயன்பாட்டிற்கான விஷுவல் பேசிக்கில் உள்ள வரிசைகள் பொதுவாக ஒரே மாதிரியான தொடர்புடைய மாறிகளின் தொகுப்புகளை சேமிக்கும் கட்டமைப்புகள் ஆகும். வரிசை உள்ளீடுகள் அவற்றின் எண் குறியீட்டின் மூலம் அணுகப்படுகின்றன.

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

மங்கலான அணி_உறுப்பினர்1 சரமாக மங்கலான அணி_உறுப்பினர்2 சரமாக ...

ஆனால் நீங்கள் மிகவும் எளிமையான மற்றும் ஒழுங்கமைக்கப்பட்ட வழியைப் பயன்படுத்தலாம் - குழு உறுப்பினர் பெயர்களின் பட்டியலை 20 மாறிகள் வரிசையில் சேமிக்கவும் சரம்:

மங்கலான குழு_உறுப்பினர்கள்(1 முதல் 20 வரை) சரமாக

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

குழு_உறுப்பினர்கள்(1) = "ஜான் ஸ்மித்"

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

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

i = 1 முதல் 20 கலங்களுக்கு(i,1).மதிப்பு = Team_Members(i) அடுத்து i

வெளிப்படையாக, 20 தனித்தனி மாறிகளைப் பயன்படுத்துவதைக் காட்டிலும் 20 பெயர்களைச் சேமிக்கும் வரிசையுடன் பணிபுரிவது மிகவும் குறைவான சிக்கலானது மற்றும் துல்லியமானது. ஆனால் இந்த பெயர்கள் 20 அல்ல, ஆனால் 1000 என்றால் என்ன? கூடுதலாக, குடும்பப்பெயர்கள் மற்றும் புரவலன்களை தனித்தனியாக வைத்திருக்க வேண்டுமா?! ஒரு வரிசையின் உதவியின்றி VBA குறியீட்டில் அத்தகைய அளவிலான தரவைக் கையாள்வது விரைவில் முற்றிலும் சாத்தியமற்றதாகிவிடும் என்பது தெளிவாகிறது.

எக்செல் விஷுவல் பேசிக்கில் பல பரிமாண வரிசைகள்

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

ஜனவரி மாதத்திற்கான தினசரி விற்பனை புள்ளிவிவரங்களை 5 வெவ்வேறு குழுக்களுக்குச் சேமிக்க விரும்புகிறீர்கள் என்று வைத்துக்கொள்வோம். இதற்கு 5 நாட்களுக்கு 31 செட் அளவீடுகளைக் கொண்ட இரு பரிமாண வரிசை தேவைப்படும். இது போன்ற ஒரு வரிசையை அறிவிப்போம்:

மங்கலான ஜனவரி_விற்பனை_புள்ளிகள் (1 முதல் 31, 1 முதல் 5 வரை) நாணயமாக

வரிசை உறுப்புகளை அணுக ஜனவரி_விற்பனை_புள்ளிவிவரங்கள், மாதத்தின் நாள் மற்றும் கட்டளை எண்ணைக் குறிக்கும் இரண்டு குறியீடுகளைப் பயன்படுத்த வேண்டும். எடுத்துக்காட்டாக, விற்பனை புள்ளிவிவரங்களைக் கொண்ட ஒரு உறுப்பின் முகவரி 2-ஓ அணிகள் 15 வது ஜனவரி இப்படி எழுதப்படும்:

ஜனவரி_விற்பனை_புள்ளிவிவரங்கள்(15, 2)

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

எக்செல் விஷுவல் பேசிக்கில் வரிசைகளை அறிவித்தல்

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

மங்கலான குழு_உறுப்பினர்கள்(1 முதல் 20 வரை) சரமாக

அத்தகைய அறிவிப்பு VBA கம்பைலரிடம் வரிசை என்று கூறுகிறது குழு உறுப்பினர்கள் 20 முதல் 1 வரையிலான குறியீடுகளில் அணுகக்கூடிய 20 மாறிகள் உள்ளன. இருப்பினும், 0 முதல் 19 வரையிலான எங்கள் வரிசை மாறிகளை எண்ணுவது பற்றி நாம் சிந்திக்கலாம், இதில் வரிசை பின்வருமாறு அறிவிக்கப்பட வேண்டும்:

மங்கலான குழு_உறுப்பினர்கள்(0 முதல் 19 வரை) சரமாக

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

மங்கலான குழு_உறுப்பினர்கள்(19) சரமாக

VBA கம்பைலர் 20 முதல் 0 வரையிலான குறியீடுகளுடன் 19 உறுப்புகளின் வரிசையை அறிவிப்பது போன்ற ஒரு உள்ளீட்டைக் கருதும்.

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

மங்கலான ஜனவரி_விற்பனை_புள்ளிகள் (1 முதல் 31, 1 முதல் 5 வரை) நாணயமாக

இருப்பினும், வரிசையின் இரு பரிமாணங்களுக்கும் தொடக்கக் குறியீட்டை நீங்கள் குறிப்பிடவில்லை என்றால், அதை இப்படி அறிவிக்கவும்:

Dim Jan_Sales_Figures(31, 5) நாணயமாக

இந்த நுழைவு இரு பரிமாண வரிசையாகக் கருதப்படும், இதன் முதல் பரிமாணமானது 32 முதல் 0 வரையிலான குறியீடுகளுடன் 31 கூறுகளைக் கொண்டுள்ளது, மேலும் அணிவரிசையின் இரண்டாவது பரிமாணமானது 6 முதல் 0 வரையிலான குறியீடுகளுடன் 5 கூறுகளைக் கொண்டுள்ளது.

டைனமிக் வரிசைகள்

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

ஒரு டைனமிக் வரிசை வெற்று அடைப்புக்குறிகளுடன் அறிவிக்கப்படுகிறது, இது போன்றது:

மங்கலான குழு_உறுப்பினர்கள்() சரமாக

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

ReDim Team_Members(1 முதல் 20 வரை)

குறியீட்டை செயல்படுத்தும் போது நீங்கள் வரிசையின் அளவை மீண்டும் மாற்ற வேண்டும் என்றால், நீங்கள் மீண்டும் ரீடிம் வெளிப்பாட்டைப் பயன்படுத்தலாம்:

குழு_அளவு > 20 எனில், குழு_உறுப்பினர்களை (1 முதல் அணி_அளவு வரை) மீண்டும் டிம் செய்யவும்

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

Team_Size > 20 எனில், ReDim Preserve Team_Members(1 to Team_Size) முடிந்தால்

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

ஒரு பதில் விடவும்