Мазмұны
Excel бағдарламасында VBA жұмыс істеу кезінде жиі кездесетін қателердің бірі пайдаланушы анықтаған түрдің анықталмағандығы болып табылады. Бұл мақалада мен сізге бұл қатенің неліктен туындағанын және бұл қатені қалай шешуге болатынын көрсетемін.
Тәжірибелік жұмыс кітабын жүктеп алу
Осы жаттығу жұмыс кітабын жүктеп алыңыз. осы мақаланы оқып жатыр.
Пайдаланушы анықтаған түрі анықталмаған.xlsm
2 себептері мен шешімдері Пайдаланушы анықтаған Excel VBA-да түрі анықталмаған
Excel VBA бағдарламасында жиі кездесетін қатенің артында 2 негізгі мәселелер бар. Оларды жан-жақты зерттеп, шешу жолдарын қарастырайық.
1. Айнымалы мәндерді жариялау кезіндегі емле қатесі
Бұл қатенің негізгі себебі. Көбінесе “Пайдаланушы анықтаған түрі анықталмаған” қатесі айнымалы мәндерді жариялау кезіндегі емле қатесіне байланысты туындайды.
Келесі код жолдарын қараңыз.
8384
Егер осы кодты іске қоссаңыз, “Пайдаланушы анықтаған түрі анықталмаған” қатесінің бар екендігі туралы хабарлайтын қате терезесін аласыз. Онымен бірге көк түспен белгіленген кодтың екінші жолын табасыз, мұнда мен “string” орнына “strng” жаздым.
Сіз ойды түсіндіңіз деп үміттенемін. VBA “strng” айнымалы түрін тани алмады, сондықтан ол оны жаңа айнымалы тип ретінде қарастырды және сіз оны бір жерде анықтадыңыз деп ойлады. Бірақ қашаноны еш жерде жарияламағаныңызды анықтады, ол қатені тудырды.
Сондықтан, қарапайым VBA кодтарын іске қосу кезінде бұл қатеге кез келген жағдайда тап болсаңыз, алдымен айнымалы түрлеріңіздің барлық емлесін тексеріңіз.
2. Тиісті сілтемелердің болмауы
Бұл қатенің тағы бір себебі. Бұл дұрыс сілтеменің болмауы. Кейде біз кодтарымызда Visual Basic сілтеме жолағынан тиісті сілтемені қажет ететін кейбір нысандарды қолданамыз. Әйтпесе, VBA нысанды танымайды.
Келесі VBA кодын қараңыз.
5230
Осы кодты іске қосыңыз. Сіз бірдей ескі қатені аласыз “Пайдаланушы анықтаған түрі анықталмаған”, Сөздік нысанын бөлектейді. Себебі VBA Сөздік нысанын тани алмады және оны қате анықталмаған пайдаланушы анықтайтын айнымалы мән ретінде қарастырды.
Енді ең үлкен сұрақ - бұл қатені қалай шешуге болады? Жеңіл. Бұл қатені шешудің 2 жолы бар.
⧪ 1-шешім: Visual Box анықтамалық жолағынан қажетті анықтаманы тексеру
Бұл бұл мәселені шешудің ең ақылды жолы. Құралдар > Visual Basic таспасындағы сілтемелер түймесі. Сілтемелер түймесін басыңыз.
Сілтемелер деп аталатын диалогтық терезе ашылады. Жылжып, Microsoft Scripting Runtime табыңыз (Бұл сіз пайдаланып жатқан нысанға байланысты. Сөздік нысаны танылуы үшін Microsoft Scripting Runtime керек. Сонымен, VBA кодында нысанды пайдалану кезінде сіз оның VBA арқылы танылуы үшін қажетті шартты білуіңіз керек. Қосымша ақпарат алу үшін осы сілтемеге өтіңіз.). Оны тексеріңіз.
Енді қайта оралыңыз және кодты іске қосыңыз. Сіз қателерді алмайсыз. Өйткені VBA бұл жолы Сөздік нысанын тани алады.
⧪ 2-шешім: Оны арнайы нысан емес, таза нысан ретінде жариялау
Бұл мәселені шешудің тағы бір жолы бар. Объектіні Сөздік нысаны емес, таза нысан ретінде жариялауға болады.
Келесі код жолдарына назар аударыңыз.
1239
Мұнда мен MyDictionary айнымалысын Сөздік емес, қарапайым нысан ретінде жарияладым. Енді осы кодты іске қоссаңыз, сізде ешқандай қате болмайды.