ഉള്ളടക്ക പട്ടിക
Excel-ൽ VBA നൊപ്പം പ്രവർത്തിക്കുമ്പോൾ നമ്മൾ നേരിടുന്ന ഏറ്റവും സാധാരണമായ പിശകുകളിലൊന്ന്, ഉപയോക്താവ് നിർവചിച്ച തരം നിർവചിക്കപ്പെട്ടിട്ടില്ല എന്നതാണ്. ഈ ലേഖനത്തിൽ, എന്തുകൊണ്ടാണ് ഈ പിശക് സംഭവിച്ചതെന്നും ഈ പിശക് എങ്ങനെ പരിഹരിക്കാമെന്നും ഞാൻ നിങ്ങളെ കാണിച്ചുതരാം.
പ്രാക്ടീസ് വർക്ക്ബുക്ക് ഡൗൺലോഡ് ചെയ്യുക
നിങ്ങൾ വ്യായാമം ചെയ്യുമ്പോൾ ഈ പരിശീലന വർക്ക്ബുക്ക് ഡൗൺലോഡ് ചെയ്യുക ഈ ലേഖനം വായിക്കുന്നു.
ഉപയോക്തൃ-നിർവചിക്കപ്പെട്ട തരം നിർവചിച്ചിട്ടില്ല Excel VBA-ൽ നിർവചിച്ചിട്ടില്ല എന്ന് ടൈപ്പ് ചെയ്യുകExcel VBA -ൽ പതിവായി സംഭവിക്കുന്ന ഈ പിശകിന് പിന്നിൽ 2 പ്രധാന പ്രശ്നങ്ങളുണ്ട്. നമുക്ക് അവ വിശദമായി പര്യവേക്ഷണം ചെയ്യുകയും അവ പരിഹരിക്കാനുള്ള വഴികൾ കണ്ടെത്തുകയും ചെയ്യാം.
1. വേരിയബിളുകൾ പ്രഖ്യാപിക്കുമ്പോൾ സ്പെല്ലിംഗ് പിശക്
ഇതാണ് ഈ പിശകിന് പിന്നിലെ പ്രധാന കാരണം. മിക്കപ്പോഴും, “ഉപയോക്തൃ-നിർവചിക്കപ്പെട്ട തരം നിർവചിച്ചിട്ടില്ല” എന്ന പിശക് വേരിയബിളുകൾ പ്രഖ്യാപിക്കുമ്പോൾ ഒരു അക്ഷരപ്പിശക് മൂലമാണ് സംഭവിക്കുന്നത്.
ഇനിപ്പറയുന്ന കോഡുകളുടെ വരികൾ നോക്കുക.
6989
നിങ്ങൾ ഈ കോഡ് പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, “ഉപയോക്തൃ-നിർവചിക്കപ്പെട്ട തരം നിർവചിച്ചിട്ടില്ല” എന്ന പിശകിന്റെ സാന്നിധ്യത്തെക്കുറിച്ച് നിങ്ങളെ അറിയിക്കുന്ന ഒരു പിശക് ബോക്സ് നിങ്ങൾക്ക് ലഭിക്കും. അതിനൊപ്പം, നീല നിറത്തിൽ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന കോഡിന്റെ രണ്ടാമത്തെ വരി നിങ്ങൾ കാണും, അവിടെ ഞാൻ “സ്ട്രിംഗ്” എന്നതിന് പകരം “strng” എന്ന് എഴുതിയിരിക്കുന്നു.
0>നിങ്ങൾക്ക് കാര്യം മനസ്സിലായി എന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു. VBA എന്നതിന് “strng” എന്ന വേരിയബിൾ തരം തിരിച്ചറിയാൻ കഴിഞ്ഞില്ല, അതുകൊണ്ടാണ് ഇത് ഒരു പുതിയ വേരിയബിൾ തരമായി കണക്കാക്കുന്നത്, നിങ്ങൾ അത് എവിടെയോ നിർവചിച്ചിട്ടുണ്ടെന്ന് കരുതുന്നു. എന്നാൽ എപ്പോൾനിങ്ങൾ ഇത് എവിടെയും പ്രഖ്യാപിച്ചിട്ടില്ലെന്ന് കണ്ടെത്തി, അത് ഒരു പിശക് ഉയർത്തി.
അതിനാൽ, ലളിതമായ VBA കോഡുകൾ പ്രവർത്തിപ്പിക്കുമ്പോൾ, നിങ്ങൾക്ക് എങ്ങനെയെങ്കിലും ഈ പിശക് നേരിടുകയാണെങ്കിൽ, ആദ്യം നിങ്ങളുടെ വേരിയബിൾ തരങ്ങളുടെ എല്ലാ അക്ഷരവിന്യാസങ്ങളും പരിശോധിക്കുക.
2. ശരിയായ റഫറൻസിംഗിന്റെ അഭാവം
ഇതാണ് ഈ പിശകിന് പിന്നിലെ മറ്റൊരു കാരണം. അത് ശരിയായ റഫറൻസിംഗിന്റെ അഭാവമാണ്. ചിലപ്പോൾ വിഷ്വൽ ബേസിക് റഫറൻസ് ബോക്സ് -ൽ നിന്ന് ശരിയായ റഫറൻസ് ആവശ്യമുള്ള ചില ഒബ്ജക്റ്റുകൾ ഞങ്ങൾ ഞങ്ങളുടെ കോഡുകളിൽ ഉപയോഗിക്കുന്നു. അല്ലെങ്കിൽ, VBA ഒബ്ജക്റ്റ് തിരിച്ചറിയുന്നില്ല.
ഇനിപ്പറയുന്ന VBA കോഡ് നോക്കുക.
2556
ഈ കോഡ് പ്രവർത്തിപ്പിക്കുക. നിങ്ങൾക്ക് പഴയ അതേ പിശക് ലഭിക്കും “ഉപയോക്തൃ-നിർവചിക്കപ്പെട്ട തരം നിർവചിച്ചിട്ടില്ല”, നിഘണ്ടു ഒബ്ജക്റ്റ് ഹൈലൈറ്റ് ചെയ്യുന്നു. VBA ന് നിഘണ്ടു ഒബ്ജക്റ്റ് തിരിച്ചറിയാൻ കഴിഞ്ഞില്ല, കൂടാതെ ഇത് ഒരു ഉപയോക്തൃ-നിർവചിച്ച വേരിയബിളായി കണക്കാക്കുകയും ചെയ്തു, അത് തെറ്റായി നിർവചിക്കപ്പെട്ടിട്ടില്ല.
ഇപ്പോൾ ഏറ്റവും വലിയ ചോദ്യം, ഈ പിശക് എങ്ങനെ പരിഹരിക്കാം എന്നതാണ്? എളുപ്പം. ഈ പിശക് പരിഹരിക്കാൻ 2 വഴികളുണ്ട്.
⧪ പരിഹാരം 1: വിഷ്വൽ ബോക്സ് റഫറൻസ് ബോക്സിൽ നിന്ന് ആവശ്യമായ റഫറൻസ് പരിശോധിക്കുന്നു
ഇതാണ് ഈ പ്രശ്നം പരിഹരിക്കാനുള്ള ഏറ്റവും മികച്ച മാർഗം. ഉപകരണങ്ങൾ > വിഷ്വൽ ബേസിക് റിബണിലെ റഫറൻസുകൾ ബട്ടൺ. റഫറൻസുകൾ ക്ലിക്ക് ചെയ്യുക.
റഫറൻസുകൾ എന്നൊരു ഡയലോഗ് ബോക്സ് തുറക്കും. സ്ക്രോൾ ചെയ്ത് മൈക്രോസോഫ്റ്റ് സ്ക്രിപ്റ്റിംഗ് റൺടൈം കണ്ടെത്തുക (ഇത് നിങ്ങൾ ഉപയോഗിക്കുന്ന ഒബ്ജക്റ്റിനെ ആശ്രയിച്ചിരിക്കുന്നു. നിഘണ്ടുഒബ്ജക്റ്റ് -ന് മൈക്രോസോഫ്റ്റ് സ്ക്രിപ്റ്റിംഗ് റൺടൈം അംഗീകരിക്കേണ്ടതുണ്ട്. അതിനാൽ, ഒരു VBA കോഡിൽ ഒരു ഒബ്ജക്റ്റ് ഉപയോഗിക്കുമ്പോൾ, VBA തിരിച്ചറിയുന്നതിന് അതിന്റെ മുൻവ്യവസ്ഥ നിങ്ങൾ അറിഞ്ഞിരിക്കണം. കൂടുതൽ വിവരങ്ങൾക്ക് ഈ ലിങ്ക് സന്ദർശിക്കുക.). ഇത് പരിശോധിക്കുക.
ഇപ്പോൾ തിരികെ വന്ന് കോഡ് റൺ ചെയ്യുക. നിങ്ങൾക്ക് പിഴവുകളൊന്നും ലഭിക്കില്ല. കാരണം VBA ന് ഇത്തവണ നിഘണ്ടുവിലെ ഒബ്ജക്റ്റ് തിരിച്ചറിയാൻ കഴിയും.
⧪ പരിഹാരം 2: ഒരു നിർദ്ദിഷ്ട ഒബ്ജക്റ്റിനേക്കാൾ ശുദ്ധമായ വസ്തുവായി പ്രഖ്യാപിക്കുന്നു
ഈ പ്രശ്നം പരിഹരിക്കാൻ മറ്റൊരു വഴിയുണ്ട്. നിഘണ്ടുവസ്തു എന്നതിലുപരി നിങ്ങൾക്ക് ഒബ്ജക്റ്റിനെ ശുദ്ധമായ ഒബ്ജക്റ്റായി പ്രഖ്യാപിക്കാനാകും.
ഇനിപ്പറയുന്ന കോഡുകളുടെ വരികൾ ശ്രദ്ധിക്കുക.
7851
ഇവിടെ ഞാൻ വേരിയബിൾ MyDictionary ഒരു ലളിതമായ ഒബ്ജക്റ്റായി പ്രഖ്യാപിച്ചു, ഒരു നിഘണ്ടുവല്ല. ഇപ്പോൾ നിങ്ങൾ ഈ കോഡ് പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഒരു പിശകും ലഭിക്കില്ല.