: Корисничкиот тип не е дефиниран во Excel VBA (2 брзи решенија)

  • Споделете Го Ова
Hugh West

Една од најчестите грешки со кои се соочуваме додека работиме со VBA во Excel е тоа што типот дефиниран од корисникот не е дефиниран. Во оваа статија, ќе ви покажам зошто е предизвикана оваа грешка и како да ја решите оваа грешка.

Преземете ја работната книга за вежбање

Преземете ја оваа работна книга за вежбање за да вежбате додека ја читате оваа статија.

Кориснички дефиниран тип Not Defined.xlsm

2 Причини и решенија за Кориснички дефиниран Тип не е дефиниран во Excel VBA

Постојат 2 главни проблеми зад оваа често сретнувана грешка во Excel VBA . Ајде да ги истражиме детално и да ги откриеме начините за нивно решавање.

1. Правописна грешка при декларирање на променливи

Ова е главната причина зад оваа грешка. Најчесто, грешката „Тип дефиниран од корисникот не е дефиниран“ е предизвикана поради правописна грешка при декларирање на променливи.

Погледнете ги следните редови кодови.

9648

Ако го вклучите овој код, ќе добиете поле за грешка што ве известува за присуството на грешката „Кориснички дефиниран тип не е дефиниран“. Заедно со него, ќе ја најдете втората линија од кодот означена со сино, каде што напишав „strng“ наместо „string“ .

Се надевам дека ја сфативте поентата. VBA не можеше да го препознае типот на променлива „strng“ , затоа ја сметаше за нов тип на променлива и мислеше дека сте ја дефинирале некаде. Но, кога тоаоткривте дека не сте ја пријавиле никаде, се појави грешка.

Затоа, додека извршувате едноставни VBA кодови, доколку сепак наидете на оваа грешка, прво проверете ги сите правописи на вашите типови на променливи.

2. Недостаток на соодветно упатување

Ова е уште една причина зад оваа грешка. Тоа е недостаток на соодветно упатување. Понекогаш користиме некои објекти во нашите кодови на кои им треба соодветно упатување од Полето за референци на Visual Basic . Во спротивно, VBA не го препознава објектот.

Погледнете го следниов код VBA .

4720

Стартувај го овој код. Ќе ја добиете истата стара грешка „Тип дефиниран од корисникот не е дефиниран“, со означување на објектот во речник . Ова е затоа што VBA не можеше да го препознае Објектот во речник и го сметаше за променлива дефинирана од корисникот, која не е погрешно дефинирана.

Сега најголемото прашање е, како да се реши оваа грешка? Лесно. Постојат 2 начини да се реши оваа грешка.

⧪ Решение 1: Проверка на предусловната референца од полето за референца Visual Box

Ова е најпаметниот начин да се реши овој проблем. Одете во Алатки > Копче Референци во лентата Visual Basic . Кликнете на Референци .

Ќе се отвори полето за дијалог наречено Референци . Скролувајте и најдете Microsoft Scripting Runtime (Ова зависи од објектот што го користите. Речникобјектот треба Microsoft Scripting Runtime да се препознае. Значи, додека користите објект во кодот VBA , мора да го знаете неговиот предуслов за да биде препознаен од VBA. Посетете ја оваа врска за повеќе информации.). Проверете го.

Сега вратете се и извршете го кодот. Нема да добиете никакви грешки. Бидејќи VBA може да го препознае Објектот во речник овој пат.

⧪ Решение 2: Декларирање како чист објект наместо специфичен објект

Постои уште еден начин да се реши овој проблем. Можете да го декларирате објектот како чист објект, наместо Објект во речник .

Забележете ги следните редови кодови.

8944

Овде ја прогласив променливата Мој речник како едноставен објект, а не Речник. Сега, ако го извршите овој код, нема да добиете никаква грешка.

Хју Вест е високо искусен тренер и аналитичар на Excel со повеќе од 10 години искуство во индустријата. Има диплома за сметководство и финансии и магистер по бизнис администрација. Хју има страст за предавање и има развиено уникатен пристап на наставата кој е лесен за следење и разбирање. Неговото стручно познавање на Excel им помогна на илјадници студенти и професионалци ширум светот да ги подобрат своите вештини и да се истакнат во нивните кариери. Преку својот блог, Хју го споделува своето знаење со светот, нудејќи бесплатни упатства за Excel и онлајн обука за да им помогне на поединците и бизнисите да го достигнат својот целосен потенцијал.