പ്രയോഗത്തിനുള്ള വിഷ്വൽ ബേസിക്കിലുള്ള ശ്രേണികൾ

പ്രയോഗത്തിനുള്ള വിഷ്വൽ ബേസിക്കിലെ അറേകൾ സാധാരണയായി ഒരേ തരത്തിലുള്ള അനുബന്ധ വേരിയബിളുകളുടെ സെറ്റുകൾ സംഭരിക്കുന്ന ഘടനകളാണ്. അറേ എൻട്രികൾ അവയുടെ സംഖ്യാ സൂചിക വഴി ആക്സസ് ചെയ്യപ്പെടുന്നു.

ഉദാഹരണത്തിന്, VBA കോഡിൽ പിന്നീടുള്ള ഉപയോഗത്തിനായി പേരുകൾ സംരക്ഷിക്കേണ്ട 20 ആളുകളുടെ ഒരു ടീമുണ്ട്. ഓരോ പേരും നിലനിർത്താൻ ഒരാൾക്ക് 20 വേരിയബിളുകൾ പ്രഖ്യാപിക്കാം, അതുപോലെ:

മങ്ങിയ ടീം_അംഗം1 സ്‌ട്രിംഗായി ഡിം ടീം_അംഗം2 സ്ട്രിംഗ് ആയി ... മങ്ങിയ ടീം_അംഗം20 സ്ട്രിംഗ് ആയി

എന്നാൽ നിങ്ങൾക്ക് വളരെ ലളിതവും കൂടുതൽ സംഘടിതവുമായ മാർഗ്ഗം ഉപയോഗിക്കാം - ടീം അംഗങ്ങളുടെ പേരുകളുടെ ഒരു ലിസ്റ്റ് 20 വേരിയബിളുകളുടെ ഒരു നിരയിൽ സൂക്ഷിക്കുക സ്ട്രിംഗ്:

ഡിം ടീം_അംഗങ്ങൾ(1 മുതൽ 20 വരെ) സ്ട്രിംഗ് ആയി

മുകളിൽ കാണിച്ചിരിക്കുന്ന വരിയിൽ, ഞങ്ങൾ ഒരു അറേ പ്രഖ്യാപിച്ചു. ഇനി നമുക്ക് അതിന്റെ ഓരോ മൂലകത്തിനും ഇതുപോലെ ഒരു മൂല്യം എഴുതാം:

ടീം_അംഗങ്ങൾ(1) = "ജോൺ സ്മിത്ത്"

പ്രത്യേക വേരിയബിളുകൾ ഉപയോഗിക്കുന്നതുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ, ഒരു അറേയിൽ ഡാറ്റ സംഭരിക്കുന്നതിന്റെ ഒരു അധിക നേട്ടം, അറേയുടെ ഓരോ ഘടകത്തിലും ഒരേ പ്രവർത്തനം നടത്തേണ്ടത് ആവശ്യമായി വരുമ്പോൾ വ്യക്തമാകും. ടീം അംഗങ്ങളുടെ പേരുകൾ 20 വ്യത്യസ്ത വേരിയബിളുകളിലാണ് സംഭരിച്ചിരിക്കുന്നതെങ്കിൽ, അവയിൽ ഓരോന്നിനും ഒരേ പ്രവർത്തനം നടത്താൻ ഓരോ തവണയും എഴുതാൻ 20 വരി കോഡ് വേണ്ടിവരും. എന്നിരുന്നാലും, പേരുകൾ ഒരു അറേയിൽ സംഭരിച്ചിട്ടുണ്ടെങ്കിൽ, അവയിൽ ഓരോന്നിനും ഒരു ലളിതമായ ലൂപ്പ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ആവശ്യമുള്ള പ്രവർത്തനം നടത്താം.

കോളം സെല്ലുകളിൽ ഓരോ ടീം അംഗത്തിന്റെയും പേരുകൾ ക്രമാനുഗതമായി പ്രിന്റ് ചെയ്യുന്ന ഒരു കോഡ് ഉദാഹരണം ഉപയോഗിച്ച് ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നത് ചുവടെ പ്രദർശിപ്പിച്ചിരിക്കുന്നു. A സജീവമായ Excel വർക്ക്ഷീറ്റ്.

i = 1 മുതൽ 20 വരെ സെല്ലുകൾക്ക് (i,1).മൂല്യം = ടീം_അംഗങ്ങൾ(i) അടുത്തത് i

വ്യക്തമായും, 20 പേരുകൾ സംഭരിക്കുന്ന ഒരു അറേയിൽ പ്രവർത്തിക്കുന്നത് 20 വ്യത്യസ്ത വേരിയബിളുകൾ ഉപയോഗിക്കുന്നതിനേക്കാൾ വളരെ ബുദ്ധിമുട്ടുള്ളതും കൂടുതൽ കൃത്യവുമാണ്. എന്നാൽ ഈ പേരുകൾ 20 അല്ല, 1000 ആണെങ്കിലോ? കൂടാതെ, കുടുംബപ്പേരുകളും രക്ഷാധികാരികളും പ്രത്യേകം സൂക്ഷിക്കേണ്ടത് ആവശ്യമാണെങ്കിൽ?! ഒരു അറേയുടെ സഹായമില്ലാതെ VBA കോഡിൽ അത്തരം ഒരു വോളിയം ഡാറ്റ കൈകാര്യം ചെയ്യുന്നത് ഉടൻ തന്നെ പൂർണ്ണമായും അസാധ്യമാകുമെന്ന് വ്യക്തമാണ്.

എക്സൽ വിഷ്വൽ ബേസിക്കിലെ മൾട്ടിഡൈമൻഷണൽ അറേകൾ

മുകളിൽ ചർച്ച ചെയ്ത വിഷ്വൽ ബേസിക് അറേകൾ ഏകമാനമായി കണക്കാക്കുന്നു. ഇതിനർത്ഥം അവർ പേരുകളുടെ ഒരു ലളിതമായ ലിസ്റ്റ് സംഭരിക്കുന്നു എന്നാണ്. എന്നിരുന്നാലും, അറേകൾക്ക് ഒന്നിലധികം അളവുകൾ ഉണ്ടാകാം. ഉദാഹരണത്തിന്, ഒരു ദ്വിമാന ശ്രേണിയെ മൂല്യങ്ങളുടെ ഒരു ഗ്രിഡുമായി താരതമ്യം ചെയ്യാം.

5 വ്യത്യസ്ത ടീമുകൾക്കായി ജനുവരിയിലെ പ്രതിദിന വിൽപ്പന കണക്കുകൾ സംരക്ഷിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് പറയാം. ഇതിന് 5 ദിവസത്തേക്ക് 31 സെറ്റ് മെട്രിക്കുകൾ അടങ്ങുന്ന ഒരു ദ്വിമാന ശ്രേണി ആവശ്യമാണ്. ഇതുപോലെയുള്ള ഒരു അറേ നമുക്ക് പ്രഖ്യാപിക്കാം:

ഡിം ജാൻ_സെയിൽസ്_കണക്കുകൾ (1 മുതൽ 31 വരെ, 1 മുതൽ 5 വരെ) കറൻസിയായി

അറേ ഘടകങ്ങൾ ആക്സസ് ചെയ്യാൻ ജനുവരി_സെയിൽസ്_കണക്കുകൾ, മാസത്തിലെ ദിവസവും കമാൻഡ് നമ്പറും സൂചിപ്പിക്കുന്ന രണ്ട് സൂചികകൾ നിങ്ങൾ ഉപയോഗിക്കേണ്ടതുണ്ട്. ഉദാഹരണത്തിന്, വിൽപ്പന കണക്കുകൾ അടങ്ങിയ ഒരു ഘടകത്തിന്റെ വിലാസം 2-ഓ ടീമുകൾ 15 മ ജനുവരി ഇതുപോലെ എഴുതപ്പെടും:

ജനുവരി_സെയിൽസ്_കണക്കുകൾ(15, 2)

അതുപോലെ, നിങ്ങൾക്ക് മൂന്നോ അതിലധികമോ അളവുകളുള്ള ഒരു അറേ പ്രഖ്യാപിക്കാൻ കഴിയും - അറേ ഡിക്ലറേഷനിലേക്ക് അധിക അളവുകൾ ചേർക്കുകയും ഈ അറേയുടെ ഘടകങ്ങളെ റഫർ ചെയ്യാൻ അധിക സൂചികകൾ ഉപയോഗിക്കുകയും ചെയ്യുക.

എക്സൽ വിഷ്വൽ ബേസിക്കിൽ അറേകൾ പ്രഖ്യാപിക്കുന്നു

ഈ ലേഖനത്തിൽ നേരത്തെ, 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 ടീം_അംഗങ്ങൾ(1 മുതൽ 20 വരെ)

കോഡിന്റെ നിർവ്വഹണ വേളയിൽ നിങ്ങൾ വീണ്ടും അറേയുടെ വലുപ്പം മാറ്റേണ്ടതുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് വീണ്ടും റെഡിം എക്സ്പ്രഷൻ ഉപയോഗിക്കാം:

ടീം_സൈസ് > 20 ആണെങ്കിൽ, ടീം_അംഗങ്ങളെ (1 മുതൽ ടീം_സൈസ് വരെ) റീഡിം ചെയ്യുക

ഈ രീതിയിൽ ഡൈനാമിക് അറേയുടെ വലുപ്പം മാറ്റുന്നത് അറേയിൽ സംഭരിച്ചിരിക്കുന്ന എല്ലാ മൂല്യങ്ങളും നഷ്‌ടപ്പെടുത്തുമെന്ന് ഓർമ്മിക്കുക. അറേയിൽ ഇതിനകം ഡാറ്റ സംഭരിക്കുന്നതിന്, നിങ്ങൾ കീവേഡ് ഉപയോഗിക്കേണ്ടതുണ്ട് സംരക്ഷിക്കുകതാഴെ കാണിച്ചിരിക്കുന്നത് പോലെ:

Team_Size > 20 ആണെങ്കിൽ, ReDim Preserve Team_Members(1 to Team_Size) അവസാനിച്ചാൽ

നിർഭാഗ്യവശാൽ കീവേഡ് സംരക്ഷിക്കുക ഒരു അറേ അളവിന്റെ മുകളിലെ പരിധി മാറ്റാൻ മാത്രമേ ഉപയോഗിക്കാനാകൂ. ഒരു അറേയുടെ താഴത്തെ പരിധി ഈ രീതിയിൽ മാറ്റാൻ കഴിയില്ല. കൂടാതെ, അറേയ്ക്ക് ഒന്നിലധികം അളവുകൾ ഉണ്ടെങ്കിൽ, കീവേഡ് ഉപയോഗിക്കുക സംരക്ഷിക്കുക, അറേയുടെ അവസാന അളവ് മാത്രമേ വലുപ്പം മാറ്റാൻ കഴിയൂ.

നിങ്ങളുടെ അഭിപ്രായങ്ങൾ രേഖപ്പെടുത്തുക