સામગ્રીઓનું કોષ્ટક
એક્સેલમાં VBA સાથે કામ કરતી વખતે આપણે જે સૌથી સામાન્ય ભૂલોનો સામનો કરીએ છીએ તે એ છે કે વપરાશકર્તા દ્વારા નિર્ધારિત પ્રકાર વ્યાખ્યાયિત નથી. આ લેખમાં, હું તમને બતાવીશ કે આ ભૂલ શા માટે થાય છે અને આ ભૂલને કેવી રીતે ઉકેલવી.
પ્રેક્ટિસ વર્કબુક ડાઉનલોડ કરો
તમે કસરત કરતી વખતે આ પ્રેક્ટિસ વર્કબુક ડાઉનલોડ કરો આ લેખ વાંચી રહ્યાં છો.
વપરાશકર્તા-નિર્ધારિત પ્રકાર નિર્ધારિત નથી.xlsm
2 કારણો અને ઉકેલો વપરાશકર્તા નિર્ધારિત એક્સેલ VBA
માં ટાઈપ નૉટ ડિફાઈન્ડ 2 એક્સેલ VBA માં વારંવાર આવતી આ ભૂલ પાછળ મુખ્ય સમસ્યાઓ છે. ચાલો તેમને વિગતવાર અન્વેષણ કરીએ અને તેમને હલ કરવાની રીતો શોધીએ.
1. વેરિયેબલ્સ જાહેર કરતી વખતે જોડણીની ભૂલ
આ ભૂલ પાછળનું મુખ્ય કારણ છે. મોટાભાગે, ભૂલ “વપરાશકર્તા-નિર્ધારિત પ્રકાર વ્યાખ્યાયિત નથી” વેરીએબલ્સની ઘોષણા કરતી વખતે જોડણીની ભૂલને કારણે થાય છે.
કોડની નીચેની રેખાઓ જુઓ.
7010
જો તમે આ કોડ ચલાવો છો, તો તમને ભૂલની હાજરી વિશે સૂચિત કરતું એક એરર બોક્સ મળશે “વપરાશકર્તા-વ્યાખ્યાયિત પ્રકાર નિર્ધારિત નથી”. તેની સાથે, તમને વાદળી રંગમાં હાઇલાઇટ કરાયેલ કોડની બીજી લાઇન મળશે, જ્યાં મેં “સ્ટ્રિંગ” ની જગ્યાએ “strng” લખ્યું છે.
હું આશા રાખું છું કે તમે પોઈન્ટ મેળવશો. VBA વેરીએબલ પ્રકાર “strng” ને ઓળખી શક્યું નથી, તેથી જ તેણે તેને એક નવા ચલ પ્રકાર તરીકે માન્યું અને વિચાર્યું કે તમે તેને ક્યાંક વ્યાખ્યાયિત કર્યું છે. પરંતુ જ્યારે તેજણાયું કે તમે તેને ક્યાંય જાહેર કર્યું નથી, તે એક ભૂલ ઉભી કરે છે.
તેથી, સરળ VBA કોડ્સ ચલાવતી વખતે, જો તમને કોઈપણ રીતે આ ભૂલ આવે, તો પહેલા તમારા વેરીએબલ પ્રકારના તમામ સ્પેલિંગ તપાસો.
2. યોગ્ય સંદર્ભનો અભાવ
આ ભૂલ પાછળનું બીજું કારણ છે. તે યોગ્ય સંદર્ભનો અભાવ છે. કેટલીકવાર અમે અમારા કોડમાં અમુક વસ્તુઓનો ઉપયોગ કરીએ છીએ જેને વિઝ્યુઅલ બેઝિક રેફરન્સ બોક્સ માંથી યોગ્ય સંદર્ભની જરૂર હોય છે. નહિંતર, VBA ઑબ્જેક્ટને ઓળખતું નથી.
નીચેનો VBA કોડ જુઓ.
5395
આ કોડ ચલાવો. તમને એ જ જૂની ભૂલ મળશે “વપરાશકર્તા-વ્યાખ્યાયિત પ્રકાર નિર્ધારિત નથી”, શબ્દકોષ ઑબ્જેક્ટ ને હાઇલાઇટ કરતાં. આ એટલા માટે છે કારણ કે VBA ડિક્શનરી ઑબ્જેક્ટ ને ઓળખી શક્યું નથી, અને તેને વપરાશકર્તા-વ્યાખ્યાયિત ચલ તરીકે ગણવામાં આવે છે, જે ભૂલથી વ્યાખ્યાયિત કરવામાં આવ્યું નથી.
હવે સૌથી મોટો પ્રશ્ન એ છે કે આ ભૂલને કેવી રીતે ઉકેલવી? સરળ. આ ભૂલને ઉકેલવાની 2 રીતો છે.
⧪ ઉકેલ 1: વિઝ્યુઅલ બોક્સ સંદર્ભ બોક્સમાંથી પૂર્વજરૂરી સંદર્ભ તપાસી રહ્યા છીએ
આ છે આ સમસ્યાને હલ કરવાની સૌથી સ્માર્ટ રીત. ટૂલ્સ > પર જાઓ સંદર્ભો વિઝ્યુઅલ બેઝિક રિબનમાં બટન. સંદર્ભ પર ક્લિક કરો.
સંદર્ભ નામનું સંવાદ બોક્સ ખુલશે. સ્ક્રોલ કરો અને શોધો માઈક્રોસોફ્ટ સ્ક્રિપ્ટીંગ રનટાઇમ (આ તમે જે ઑબ્જેક્ટનો ઉપયોગ કરી રહ્યાં છો તેના પર આધાર રાખે છે. ડિક્શનરીઑબ્જેક્ટ ને માઈક્રોસોફ્ટ સ્ક્રિપ્ટીંગ રનટાઇમ ને ઓળખવાની જરૂર છે. તેથી, VBA કોડમાં ઑબ્જેક્ટનો ઉપયોગ કરતી વખતે, તમારે VBA દ્વારા ઓળખવા માટે તેની પૂર્વશરત જાણવી જોઈએ. વધુ માહિતી માટે આ લિંકની મુલાકાત લો.). તેને તપાસો.
હવે પાછા આવો અને કોડ ચલાવો. તમને કોઈપણ ભૂલો મળશે નહીં. કારણ કે VBA આ વખતે ડિક્શનરી ઑબ્જેક્ટ ને ઓળખી શકે છે.
⧪ ઉકેલ 2: તેને ચોક્કસ ઑબ્જેક્ટને બદલે શુદ્ધ ઑબ્જેક્ટ તરીકે જાહેર કરવું
આ સમસ્યાને હલ કરવાની બીજી રીત છે. તમે ડિક્શનરી ઑબ્જેક્ટ ને બદલે ઑબ્જેક્ટને શુદ્ધ ઑબ્જેક્ટ તરીકે જાહેર કરી શકો છો.
કોડની નીચેની રેખાઓ પર ધ્યાન આપો.
5384
અહીં મેં ચલ MyDictionary ને એક સરળ ઑબ્જેક્ટ તરીકે જાહેર કર્યું છે, ડિક્શનરી તરીકે નહીં. હવે જો તમે આ કોડ ચલાવો છો, તો તમને કોઈ ભૂલ નહીં મળે.