: એક્સેલ VBA (2 ક્વિક સોલ્યુશન્સ) માં વપરાશકર્તા વ્યાખ્યાયિત પ્રકાર વ્યાખ્યાયિત નથી

  • આ શેર કરો
Hugh West

એક્સેલમાં 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 ને એક સરળ ઑબ્જેક્ટ તરીકે જાહેર કર્યું છે, ડિક્શનરી તરીકે નહીં. હવે જો તમે આ કોડ ચલાવો છો, તો તમને કોઈ ભૂલ નહીં મળે.

હ્યુજ વેસ્ટ ઉદ્યોગમાં 10 વર્ષથી વધુનો અનુભવ ધરાવતા અત્યંત અનુભવી એક્સેલ ટ્રેનર અને વિશ્લેષક છે. તેમણે એકાઉન્ટિંગ અને ફાઇનાન્સમાં સ્નાતકની ડિગ્રી અને બિઝનેસ એડમિનિસ્ટ્રેશનમાં માસ્ટર ડિગ્રી ધરાવે છે. હ્યુને શીખવવાનો શોખ છે અને તેણે એક અનન્ય શિક્ષણ અભિગમ વિકસાવ્યો છે જે અનુસરવા અને સમજવામાં સરળ છે. એક્સેલના તેમના નિષ્ણાત જ્ઞાને વિશ્વભરના હજારો વિદ્યાર્થીઓ અને વ્યાવસાયિકોને તેમની કુશળતા સુધારવામાં અને તેમની કારકિર્દીમાં શ્રેષ્ઠ બનાવવામાં મદદ કરી છે. તેમના બ્લોગ દ્વારા, હ્યુજ તેમના જ્ઞાનને વિશ્વ સાથે શેર કરે છે, વ્યક્તિઓ અને વ્યવસાયોને તેમની સંપૂર્ણ ક્ષમતા સુધી પહોંચવામાં મદદ કરવા માટે મફત એક્સેલ ટ્યુટોરિયલ્સ અને ઑનલાઇન તાલીમ ઓફર કરે છે.