Օգտագործողի կողմից սահմանված տեսակը, որը սահմանված չէ Excel VBA-ում (2 արագ լուծում)

  • Կիսվել Սա
Hugh West

Առավել տարածված սխալներից մեկը, որին մենք հանդիպում ենք VBA Excel-ում աշխատելիս այն է, որ օգտագործողի կողմից սահմանված տեսակը սահմանված չէ: Այս հոդվածում ես ձեզ ցույց կտամ, թե ինչու է առաջացել այս սխալը և ինչպես լուծել այս սխալը:

Ներբեռնեք «Practice Workbook»-ը

Ներբեռնեք այս պրակտիկայի աշխատանքային գրքույկը, որպեսզի մարզվեք մինչ դուք կարդում են այս հոդվածը:

User-Defined Type Not Defined.xlsm

2 Պատճառներ և լուծումներ Օգտատիրոջ կողմից սահմանված Type Not Defined in Excel VBA

Կան 2 հիմնական խնդիրներ Excel-ում VBA հաճախ հանդիպող այս սխալի հետևում: Եկեք մանրամասն ուսումնասիրենք դրանք և պարզենք դրանց լուծման ուղիները:

1. Ուղղագրական սխալ փոփոխականներ հայտարարելիս

Սա է այս սխալի հիմնական պատճառը: Շատ ժամանակ «Օգտվողի կողմից սահմանված տեսակը սահմանված չէ» սխալը առաջանում է փոփոխականներ հայտարարելիս ուղղագրական սխալի պատճառով:

Նայեք կոդերի հետևյալ տողերը:

9553

Եթե գործարկեք այս կոդը, դուք կստանաք սխալի տուփ, որը կտեղեկացնի ձեզ սխալի առկայության մասին «Օգտատիրոջ կողմից սահմանված տեսակը սահմանված չէ»: Դրա հետ մեկտեղ դուք կգտնեք կոդի երկրորդ տողը կապույտով ընդգծված, որտեղ ես գրել եմ «strng» «string» -ի փոխարեն:

Հուսով եմ՝ հասկացաք: VBA -ը չկարողացավ ճանաչել փոփոխականի տեսակը “strng” , այդ իսկ պատճառով այն դիտարկեց որպես նոր փոփոխականի տեսակ և մտածեց, որ դուք ինչ-որ տեղ սահմանել եք: Բայց երբ այնպարզվեց, որ դուք այն ոչ մի տեղ չեք հայտարարել, այն սխալ է առաջացրել:

Այդ պատճառով, պարզ VBA կոդերը գործարկելիս, եթե այնուամենայնիվ հանդիպեք այս սխալին, նախ ստուգեք ձեր փոփոխականների տեսակների բոլոր ուղղագրությունները:

2. Պատշաճ հղումների բացակայություն

Սա այս սխալի ևս մեկ պատճառ է: Դա պատշաճ հղումների բացակայություն է: Երբեմն մենք օգտագործում ենք որոշ օբյեկտներ մեր կոդերում, որոնք պահանջում են համապատասխան հղումներ Visual Basic Reference վանդակից : Հակառակ դեպքում, VBA -ը չի ճանաչում օբյեկտը:

Նայեք հետևյալ VBA կոդը:

6267

Գործարկեք այս կոդը: Դուք կստանաք նույն հին սխալը «Օգտատիրոջ կողմից սահմանված տեսակը սահմանված չէ», ընդգծելով Բառարանային օբյեկտը : Դա պայմանավորված է նրանով, որ VBA -ը չկարողացավ ճանաչել Բառարանային օբյեկտը և այն դիտարկեց որպես օգտագործողի կողմից սահմանված փոփոխական, որը սխալմամբ չի սահմանվել:

Այժմ ամենամեծ հարցն այն է, թե ինչպե՞ս լուծել այս սխալը: Հեշտ. Այս սխալը լուծելու 2 եղանակներ կան:

⧪ Լուծում 1. Վիզուալ տուփի տեղեկատու տուփից նախադրյալ հղումը ստուգելը

Սա է այս խնդիրը լուծելու ամենախելացի միջոցը: Գնացեք Գործիքներ > Հղումներ կոճակը Visual Basic ժապավենում: Սեղմեք Հղումներ :

Կբացվի երկխոսության տուփ, որը կոչվում է Հղումներ : Ոլորեք և գտեք Microsoft Scripting Runtime (սա կախված է ձեր օգտագործած օբյեկտից: Բառարանօբյեկտը պետք է Microsoft Scripting Runtime ճանաչվի: Այսպիսով, VBA կոդում օբյեկտ օգտագործելիս դուք պետք է իմանաք դրա նախապայմանը՝ VBA-ի կողմից ճանաչվելու համար: Այցելեք այս հղումը լրացուցիչ տեղեկությունների համար): Ստուգեք այն:

Այժմ վերադարձեք և գործարկեք կոդը: Դուք ոչ մի սխալ չեք ստանա: Քանի որ VBA -ն այս անգամ կարող է ճանաչել Բառարանային օբյեկտը :

⧪ Լուծում 2. այն հայտարարելով որպես մաքուր օբյեկտ և ոչ թե հատուկ օբյեկտ

Այս խնդիրը լուծելու այլ տարբերակ կա. Դուք կարող եք օբյեկտը հայտարարել որպես մաքուր օբյեկտ, այլ ոչ թե Բառարանային օբյեկտ :

Ուշադրություն դարձրեք կոդերի հետևյալ տողերին:

5415

Այստեղ ես հայտարարել եմ MyDictionary փոփոխականը որպես պարզ օբյեկտ, ոչ թե Բառարան: Այժմ, եթե գործարկեք այս կոդը, ոչ մի սխալ չեք ստանա:

Հյու Ուեսթը բարձր փորձառու Excel-ի մարզիչ և վերլուծաբան է, որն ունի ավելի քան 10 տարվա փորձ այս ոլորտում: Նա հաշվապահական հաշվառման և ֆինանսների բակալավրի և բիզնեսի կառավարման մագիստրոսի կոչում է ստացել: Հյուը կիրք ունի դասավանդելու նկատմամբ և մշակել է ուսուցման յուրահատուկ մոտեցում, որը հեշտ է հետևել և հասկանալ: Excel-ի նրա փորձագիտական ​​գիտելիքներն օգնել են հազարավոր ուսանողների և մասնագետների ամբողջ աշխարհում բարելավել իրենց հմտությունները և առաջադիմել իրենց կարիերայում: Իր բլոգի միջոցով Հյուն կիսվում է իր գիտելիքներով աշխարհի հետ՝ առաջարկելով Excel-ի անվճար ձեռնարկներ և առցանց ուսուցում, որոնք կօգնեն անհատներին և ձեռնարկություններին հասնել իրենց ողջ ներուժին: