යෙදුම් සඳහා විෂුවල් බේසික් අරා

යෙදුම් සඳහා Visual Basic හි ඇති Arrays යනු සාමාන්‍යයෙන් එකම වර්ගයේ අදාළ විචල්‍ය කට්ටල ගබඩා කරන ව්‍යුහයන් වේ. අරා ඇතුළත් කිරීම් ඒවායේ සංඛ්‍යාත්මක දර්ශකය මගින් ප්‍රවේශ වේ.

උදාහරණයක් ලෙස, VBA කේතයේ පසුව භාවිතා කිරීම සඳහා නම් සුරැකිය යුතු පුද්ගලයින් 20 දෙනෙකුගෙන් යුත් කණ්ඩායමක් ඇත. කෙනෙකුට එක් එක් නම රඳවා ගැනීමට විචල්‍ය 20 ක් ප්‍රකාශ කළ හැකිය:

Dim Team_Member1 String ලෙස Dim Team_Member2 String ලෙස ... Dim Team_Member20 String ලෙස

නමුත් ඔබට වඩාත් සරල සහ වඩා සංවිධිත ක්‍රමයක් භාවිතා කළ හැක - කණ්ඩායම් සාමාජිකයින්ගේ නම් ලැයිස්තුවක් වැනි විචල්‍ය 20 ක අරාවක ගබඩා කරන්න String:

ඩිම් Team_Members(1 සිට 20) String ලෙස

ඉහත පෙන්වා ඇති පේළියේ, අපි අරාවක් ප්රකාශ කර ඇත. දැන් අපි එහි එක් එක් මූලද්‍රව්‍ය සඳහා අගයක් ලියන්නෙමු:

Team_Members(1) = "John Smith"

වෙනම විචල්‍යයන් භාවිතා කිරීම හා සසඳන විට අරාවක දත්ත ගබඩා කිරීමේ අමතර වාසියක්, අරාවේ එක් එක් මූලද්‍රව්‍ය මත එකම ක්‍රියාවක් කිරීමට අවශ්‍ය වූ විට පැහැදිලි වේ. කණ්ඩායම් සාමාජිකයින්ගේ නම් වෙනම විචල්‍ය 20 කින් ගබඩා කර ඇත්නම්, ඒ සෑම එකක් සඳහාම එකම ක්‍රියාවක් සිදු කිරීම සඳහා සෑම විටම ලිවීමට කේත පේළි 20 ක් අවශ්‍ය වේ. කෙසේ වෙතත්, නම් අරාවක ගබඩා කර ඇත්නම්, එවිට ඔබට සරල ලූපයක් භාවිතයෙන් ඒ සෑම එකක් සමඟම අපේක්ෂිත ක්‍රියාව සිදු කළ හැකිය.

එය ක්‍රියා කරන ආකාරය තීරු කොටු තුළ එක් එක් කණ්ඩායම් සාමාජිකයාගේ නම් අනුක්‍රමිකව මුද්‍රණය කරන කේත උදාහරණයකින් පහත නිරූපණය කෙරේ. A ක්රියාකාරී Excel වැඩ පත්රිකාව.

i = 1 සිට 20 Cells සඳහා(i,1).Value = Team_Members(i) මීළඟට i

පැහැදිලිවම, නම් 20 ක් ගබඩා කරන අරාවක් සමඟ වැඩ කිරීම වෙනම විචල්‍යයන් 20 ක් භාවිතා කරනවාට වඩා අඩු අපහසු සහ නිවැරදි ය. නමුත් මෙම නම් 20 නොව 1000 නම් කුමක් කළ යුතුද? ඊට අමතරව, වාසගම සහ අනුශාසනා වෙන වෙනම තබා ගැනීමට අවශ්‍ය නම්?! අරාවක ආධාරයෙන් තොරව VBA කේතයේ එවැනි දත්ත පරිමාවක් හැසිරවීම ඉතා ඉක්මනින් සම්පූර්ණයෙන්ම කළ නොහැකි වනු ඇති බව පැහැදිලිය.

එක්සෙල් විෂුවල් බේසික් හි බහුමාන අරා

ඉහත සාකච්ඡා කර ඇති දෘෂ්‍ය මූලික අරා ඒක මානයන් ලෙස සැලකේ. මෙයින් අදහස් කරන්නේ ඔවුන් සරල නම් ලැයිස්තුවක් ගබඩා කරන බවයි. කෙසේ වෙතත්, අරාවන්ට බහු මානයන් තිබිය හැක. උදාහරණයක් ලෙස, ද්විමාන අරාවක් අගයන් ජාලයකට සැසඳිය හැක.

ඔබට විවිධ කණ්ඩායම් 5ක් සඳහා ජනවාරි මාසයේ දෛනික විකුණුම් සංඛ්‍යා සුරැකීමට අවශ්‍ය යැයි සිතමු. මේ සඳහා දින 5ක් සඳහා ප්‍රමිතික කට්ටල 31කින් සමන්විත ද්විමාන අරාවක් අවශ්‍ය වේ. අපි මේ වගේ array එකක් declare කරමු:

Dim Jan_Sales_Figures (1 සිට 31, 1 සිට 5 දක්වා) මුදල් ලෙස

අරා මූලද්‍රව්‍ය වෙත ප්‍රවේශ වීමට Jan_Sales_Figures, ඔබ මාසයේ දිනය සහ විධාන අංකය සඳහන් කරන දර්ශක දෙකක් භාවිතා කළ යුතුය. උදාහරණයක් ලෙස, විකුණුම් සංඛ්‍යා අඩංගු මූලද්‍රව්‍යයක ලිපිනය 2-ඕ සඳහා කණ්ඩායම් 15 වැනි ජනවාරි මාසය මෙසේ ලියනු ඇත.

ජනවාරි_විකුණුම්_සංඛ්‍යා(15, 2)

එලෙසම, ඔබට මානයන් 3ක් හෝ වැඩි ගණනක් සහිත අරාවක් ප්‍රකාශ කළ හැක - අරාව ප්‍රකාශනයට අමතර මානයන් එකතු කර මෙම අරාවේ මූලද්‍රව්‍ය වෙත යොමු වීමට අමතර දර්ශක භාවිතා කරන්න.

Excel Visual Basic හි Arrays ප්‍රකාශ කිරීම

මෙම ලිපියේ කලින්, අපි දැනටමත් VBA හි අරාවන් ප්රකාශ කිරීමේ උදාහරණ කිහිපයක් දෙස බැලුවෙමු, නමුත් මෙම මාතෘකාව වඩාත් සමීපව බැලීම වටී. පෙන්වා ඇති පරිදි, ඒක මාන අරාවක් මෙසේ ප්‍රකාශ කළ හැක:

ඩිම් Team_Members(1 සිට 20) String ලෙස

එවැනි ප්‍රකාශයක් VBA සම්පාදකයාට අරාව කියයි කණ්ඩායම් සාමාජිකයින් 20 සිට 1 දක්වා දර්ශක වලදී ප්‍රවේශ විය හැකි විචල්‍ය 20 කින් සමන්විත වේ. කෙසේ වෙතත්, අපගේ අරා විචල්‍යයන් 0 සිට 19 දක්වා අංක කිරීම ගැන සිතිය හැක, එහිදී අරාව මෙසේ ප්‍රකාශ කළ යුතුය:

ඩිම් Team_Members(0 සිට 19) String ලෙස

ඇත්ත වශයෙන්ම, පෙරනිමියෙන්, අරා මූලද්‍රව්‍ය අංක කිරීම ආරම්භ වන්නේ 0 සිට වන අතර, අරා ප්‍රකාශනයේ දී, ආරම්භක දර්ශකය මේ ආකාරයෙන් නිශ්චිතව දක්වා නොතිබිය හැකිය:

Dim Team_Members(19) String ලෙස

VBA සම්පාදකය 20 සිට 0 දක්වා දර්ශක සහිත මූලද්‍රව්‍ය 19 ක අරාවක් ප්‍රකාශ කිරීම වැනි ඇතුළත් කිරීමක් ලෙස සලකනු ඇත.

බහුමාන දෘෂ්‍ය මූලික අරා ප්‍රකාශ කිරීමේදී එම නීතිම අදාළ වේ. එක් උදාහරණයක දැනටමත් පෙන්වා ඇති පරිදි, ද්විමාන අරාවක් ප්‍රකාශ කිරීමේදී, එහි මානයන්හි දර්ශක කොමාවකින් වෙන් කරනු ලැබේ:

Dim Jan_Sales_Figures (1 සිට 31, 1 සිට 5 දක්වා) මුදල් ලෙස

කෙසේ වෙතත්, ඔබ අරාවේ මානයන් දෙකම සඳහා ආරම්භක දර්ශකයක් සඳහන් නොකරන්නේ නම් සහ එය මෙසේ ප්රකාශ කරන්න:

Dim Jan_Sales_Figures(31, 5) මුදල් ලෙස

එවිට මෙම ප්‍රවේශය ද්විමාන අරාවක් ලෙස සලකනු ලබන අතර, එහි පළමු මානයෙහි 32 සිට 0 දක්වා දර්ශක සහිත මූලද්‍රව්‍ය 31ක් අඩංගු වන අතර, අරාවේ දෙවන මානයෙහි 6 සිට 0 දක්වා දර්ශක සහිත මූලද්‍රව්‍ය 5ක් අඩංගු වේ.

ගතික අරා

ඉහත උදාහරණ වල ඇති සියලුම අරා වලට ස්ථාවර මාන සංඛ්‍යාවක් ඇත. කෙසේ වෙතත්, බොහෝ අවස්ථාවලදී අපගේ අරාව කොපමණ විය යුතුදැයි අපි කල්තියා නොදනිමු. විශාල අරාවක් ප්‍රකාශ කිරීමෙන් අපට තත්වයෙන් මිදිය හැකිය, එහි ප්‍රමාණය නිසැකවම අපගේ කාර්යයට අවශ්‍ය ප්‍රමාණයට වඩා විශාල වනු ඇත. නමුත් එවැනි විසඳුමක් සඳහා අමතර මතකයක් අවශ්ය වන අතර වැඩසටහන මන්දගාමී විය හැක. වඩා හොඳ විසඳුමක් තිබේ. අපට ගතික අරාවක් භාවිතා කළ හැකිය - මෙය මැක්‍රෝ එකක් ක්‍රියාත්මක කිරීමේදී ඕනෑම වාර ගණනක් ප්‍රමාණය සකසා වෙනස් කළ හැකි අරාවකි.

ගතික අරාවක් හිස් වරහන් සහිතව ප්‍රකාශ කර ඇත, මේ වගේ:

Dim Team_Members() String ලෙස

ඊළඟට, ප්‍රකාශනය භාවිතයෙන් කේත ක්‍රියාත්මක කිරීමේදී ඔබට අරාවේ මානය ප්‍රකාශ කිරීමට අවශ්‍ය වනු ඇත ReDim:

ReDim Team_Members(1 සිට 20 දක්වා)

කේතය ක්‍රියාත්මක කිරීමේදී ඔබට නැවත අරාවේ ප්‍රමාණය වෙනස් කිරීමට අවශ්‍ය නම්, ඔබට නැවත ReDim ප්‍රකාශනය භාවිතා කළ හැකිය:

Team_Size > 20 නම් Team_Members (1 සිට Team_Size දක්වා) ReDim නම් අවසන් කරන්න

මේ ආකාරයෙන් ගතික අරාවක ප්‍රතිප්‍රමාණය වෙනස් කිරීම අරාවේ ගබඩා කර ඇති සියලුම අගයන් නැතිවීමට හේතු වන බව මතක තබා ගන්න. දැනටමත් අරාව තුළ දත්ත ගබඩා කිරීම සඳහා, ඔබ මූල පදය භාවිතා කළ යුතුය සංරක්ෂණයපහත පෙන්වා ඇති පරිදි:

Team_Size > 20 නම්, ReDim Preserv Team_Members(1 සිට Team_Size) අවසන් නම්

අවාසනාවන්ත ලෙස මූල පදය සංරක්ෂණය අරාවක මානයක ඉහල මායිම වෙනස් කිරීමට පමණක් භාවිතා කළ හැක. අරාවක පහළ මායිම මේ ආකාරයෙන් වෙනස් කළ නොහැක. එසේම, අරාව බහු මානයන් තිබේ නම්, මූල පදය භාවිතා කිරීම සංරක්ෂණය, අරාවේ අවසාන මානය පමණක් ප්‍රතිප්‍රමාණ කළ හැක.

ඔබමයි