: Кориснички дефинисани тип није дефинисан у Екцел ВБА (2 брза решења)

  • Деле Ово
Hugh West

Једна од најчешћих грешака са којима се суочавамо док радимо са ВБА у Екцел-у је да кориснички дефинисани тип није дефинисан. У овом чланку ћу вам показати зашто је настала ова грешка и како да решите ову грешку.

Преузмите радну свеску са вежбама

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

Кориснички дефинисан тип није дефинисан.клсм

2 Узроци и решења за Кориснички дефинисан Тип није дефинисан у Екцел ВБА

Постоји 2 главни проблеми иза ове грешке која се често јавља у програму Екцел ВБА . Хајде да их детаљно истражимо и сазнамо начине да их решимо.

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

Ово је главни разлог ове грешке. Већину времена, грешка „Усер-Дефинед Типе нот Дефинед” је узрокована грешком у писању приликом декларисања променљивих.

Погледајте следеће редове кодова.

1831

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

Надам се да сте схватили поенту. ВБА није могао да препозна тип променљиве “стрнг” , зато га је сматрао новим типом променљиве и мислио да сте га негде дефинисали. Али када јеоткрио да га нигде нисте декларисали, појавила се грешка.

Стога, док покрећете једноставне ВБА кодове, ако ипак наиђете на ову грешку, прво проверите све правописе ваших типова променљивих.

2. Недостатак одговарајуће референце

Ово је још један узрок ове грешке. То је недостатак одговарајућег референцирања. Понекад користимо неке објекте у нашим кодовима којима је потребно одговарајуће референцирање из кутије Висуал Басиц Референце . У супротном, ВБА не препознаје објекат.

Погледајте следећи ВБА код.

9738

Покрените овај код. Добићете исту стару грешку „Усер-Дефинед Типе нот Дефинед”, истакнувши објекат Речник . То је зато што ВБА није могао да препозна речник објекат и сматрао га је кориснички дефинисаном променљивом, која није грешком дефинисана.

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

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

Ово је најпаметнији начин да се реши овај проблем. Идите на Алатке &гт; Дугме Референце на траци Висуал Басиц . Кликните на Референце .

Отвориће се оквир за дијалог Референце . Померите се и пронађите Мицрософт Сцриптинг Рунтиме (Ово зависи од објекта који користите. Речник објецт треба да Мицрософт Сцриптинг Рунтиме буде препознат. Дакле, док користите објекат у ВБА коду, морате знати његов предуслов да га ВБА препозна. Посетите ову везу за више информација.). Проверите.

Сада се вратите и покрените код. Нећете добити никакве грешке. Зато што ВБА овог пута може препознати објекат Речник .

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

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

Обратите пажњу на следеће редове кодова.

9668

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

Хју Вест је веома искусан Екцел тренер и аналитичар са више од 10 година искуства у индустрији. Дипломирао је рачуноводство и финансије и магистрирао пословну администрацију. Хју има страст према подучавању и развио је јединствен приступ подучавању који је лако пратити и разумети. Његово стручно знање о Екцел-у помогло је хиљадама студената и професионалаца широм света да унапреде своје вештине и постану успешни у каријери. Кроз свој блог, Хју дели своје знање са светом, нудећи бесплатне Екцел туторијале и онлајн обуку како би помогли појединцима и предузећима да остваре свој пуни потенцијал.