Содржина
Една од најчестите грешки со кои се соочуваме додека работиме со 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
Овде ја прогласив променливата Мој речник како едноставен објект, а не Речник. Сега, ако го извршите овој код, нема да добиете никаква грешка.