Mündəricat
Excel-də VBA ilə işləyərkən qarşılaşdığımız ən çox rast gəlinən xətalardan biri istifadəçi tərəfindən müəyyən edilmiş növün müəyyən edilməməsidir. Bu yazıda mən sizə bu xətanın niyə yarandığını və bu xətanı necə həll edəcəyinizi göstərəcəyəm.
Təcrübə İş Kitabını endirin
Məşq edərkən məşq etmək üçün bu məşq kitabını endirin. bu məqaləni oxuyursunuz.
İstifadəçi tərəfindən təyin edilmiş Növ Müəyyən edilməmişdir.xlsm
2 Səbəb və Həll Yolları İstifadəçi tərəfindən təyin edilmişdir Excel VBA-da Növ Müəyyən edilməmişdir
Excel VBA -də tez-tez rast gəlinən bu xətanın arxasında 2 əsas problem var. Gəlin onları ətraflı araşdıraq və onların həlli yollarını öyrənək.
1. Dəyişənləri Elan Edərkən Orfoqrafiya Xətası
Bu xətanın əsas səbəbi budur. Çox vaxt, “İstifadəçi tərəfindən müəyyən edilmiş Növ müəyyən edilməmişdir” xətası dəyişənlərin elanı zamanı orfoqrafik səhvə görə yaranır.
Aşağıdakı kod sətirlərinə baxın.
6767
Bu kodu işlətsəniz, “İstifadəçi tərəfindən müəyyən edilmiş Növ Müəyyən edilməmiş” xətasının mövcudluğu barədə sizi xəbərdar edən xəta qutusu alacaqsınız. Bununla yanaşı, kodun mavi rənglə vurğulanmış ikinci sətrini tapacaqsınız, burada “string” yerinə “strng” yazdım.
Ümid edirəm ki, fikri başa düşdünüz. VBA dəyişən növünü tanıya bilmədi “strng” , buna görə də onu yeni dəyişən növü hesab etdi və onu haradasa müəyyən etdiyinizi düşündü. Amma nə vaxtaşkar etdi ki, onu heç bir yerdə elan etməmisiniz, bu, xətaya səbəb oldu.
Ona görə də sadə VBA kodları işləyərkən, hər halda bu xəta ilə qarşılaşsanız, əvvəlcə dəyişən tiplərinizin bütün orfoqrafik yazılarını yoxlayın.
2. Düzgün istinadın olmaması
Bu səhvin arxasında başqa səbəb budur. Bu, düzgün istinadın olmamasıdır. Bəzən biz kodlarımızda Visual Basic Reference qutusundan düzgün istinad tələb edən bəzi obyektlərdən istifadə edirik. Əks halda, VBA obyekti tanımır.
Aşağıdakı VBA koduna baxın.
5899
Bu kodu işlədin. Siz eyni köhnə xətanı əldə edəcəksiniz “İstifadəçi tərəfindən müəyyən edilmiş Növ müəyyən edilmədi”, Lüğət obyektini vurğulayaraq . Bunun səbəbi, VBA -nin Lüğət obyektini tanıya bilməməsi və onu səhvən müəyyən edilməmiş istifadəçi tərəfindən müəyyən edilmiş dəyişən kimi qəbul etməsidir.
İndi ən böyük sual budur ki, bu xətanı necə həll etmək olar? Asan. Bu xətanı həll etməyin 2 yolu var.
⧪ Həll 1: Vizual Qutunun İstinad Qutusundan İlkin Şərt Arayışının Yoxlanması
Bu, bu problemi həll etməyin ən ağıllı yolu. Alətlər > Visual Basic lentindəki Referanslar düyməsi. Referanslar üzərinə klikləyin.
Referanslar adlı dialoq qutusu açılacaq. Sürüşdürün və Microsoft Scripting Runtime tapın (Bu, istifadə etdiyiniz obyektdən asılıdır. Lüğətobyektin tanınması üçün Microsoft Scripting Runtime tələb olunur. Beləliklə, VBA kodunda obyektdən istifadə edərkən onun VBA tərəfindən tanınması üçün ilkin şərti bilməlisiniz. Ətraflı məlumat üçün bu linkə daxil olun.). Yoxlayın.
İndi qayıdın və kodu işə salın. Heç bir səhv almayacaqsınız. Çünki VBA bu dəfə Lüğət obyektini tanıya bilər.
⧪ Həll 2: Onu Xüsusi Obyekt deyil, Saf Obyekt kimi elan etmək
Bu problemi həll etməyin başqa bir yolu var. Siz obyekti Lüğət obyekti deyil, təmiz obyekt kimi elan edə bilərsiniz.
Aşağıdakı kod sətirlərinə diqqət yetirin.
2106
Burada mən MyDictionary dəyişənini Lüğət deyil, sadə obyekt kimi elan etdim. İndi bu kodu işlətsəniz, heç bir xəta görməyəcəksiniz.