: İstifadəçi tərəfindən müəyyən edilmiş növ Excel VBA-da müəyyən edilməyib (2 Sürətli Həllər)

  • Bunu Paylaş
Hugh West

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.

Hugh West sənayedə 10 ildən çox təcrübəyə malik yüksək təcrübəli Excel təlimçisi və analitikidir. Mühasibat uçotu və maliyyə üzrə bakalavr dərəcəsi və Biznesin idarə edilməsi üzrə magistr dərəcəsinə malikdir. Hugh tədrisə həvəslidir və izləmək və başa düşmək asan olan unikal tədris yanaşması işləyib hazırlayıb. Onun Excel üzrə ekspert biliyi bütün dünyada minlərlə tələbə və mütəxəssisə öz bacarıqlarını təkmilləşdirməyə və karyeralarında üstün olmağa kömək etmişdir. Hugh öz bloqu vasitəsilə biliklərini dünya ilə bölüşür, fərdlərə və müəssisələrə öz potensiallarını tam şəkildə çatdırmaq üçün pulsuz Excel dərsləri və onlayn təlimlər təklif edir.