: მომხმარებლის განსაზღვრული ტიპი არ არის განსაზღვრული Excel VBA-ში (2 სწრაფი გადაწყვეტა)

  • გააზიარეთ ეს
Hugh West

ერთ-ერთი ყველაზე გავრცელებული შეცდომა, რომელსაც ვაწყდებით VBA Excel-ში მუშაობისას არის ის, რომ მომხმარებლის მიერ განსაზღვრული ტიპი არ არის განსაზღვრული. ამ სტატიაში მე გაჩვენებთ, რატომ არის ეს შეცდომა გამოწვეული და როგორ უნდა მოაგვაროთ ეს შეცდომა.

ჩამოტვირთეთ სავარჯიშო სამუშაო წიგნი

ჩამოტვირთეთ ეს სავარჯიშო სამუშაო წიგნი, რომ ივარჯიშოთ სანამ თქვენ კითხულობს ამ სტატიას.

მომხმარებლის მიერ განსაზღვრული ტიპი Not Defined.xlsm

2 მიზეზები და გადაწყვეტილებები მომხმარებლის მიერ განსაზღვრული Excel VBA-ში ტიპი არ არის განსაზღვრული

არსებობს 2 ძირითადი პრობლემები Excel-ში VBA ხშირად შემხვედრი შეცდომის უკან. მოდით, დეტალურად გამოვიკვლიოთ ისინი და გავარკვიოთ მათი გადაჭრის გზები.

1. ორთოგრაფიული შეცდომა ცვლადების გამოცხადებისას

ეს არის ამ შეცდომის მთავარი მიზეზი. უმეტეს შემთხვევაში, შეცდომა „მომხმარებლის მიერ განსაზღვრული ტიპი არ არის განსაზღვრული“ გამოწვეულია ორთოგრაფიული შეცდომის გამო ცვლადების გამოცხადებისას.

იხილეთ კოდების შემდეგი სტრიქონები.

5593

თუ ამ კოდს გაუშვით, მიიღებთ შეცდომის ველს, რომელიც გაცნობებთ შეცდომის არსებობის შესახებ „მომხმარებლის მიერ განსაზღვრული ტიპი არ არის განსაზღვრული“. მასთან ერთად, თქვენ იხილავთ კოდის მეორე სტრიქონს ლურჯად ხაზგასმული, სადაც მე დავწერე „strng“ „string“ -ის ნაცვლად.

ვიმედოვნებ, რომ მიმაჩნია აზრი. VBA ვერ ცნობდა ცვლადის ტიპს “strng” , ამიტომაც განიხილა იგი, როგორც ახალი ცვლადის ტიპი და ფიქრობდა, რომ სადმე განსაზღვრეთ. მაგრამ როცა ისაღმოვაჩინე, რომ არსად არ გამოგიცხადებიათ, მან წარმოშვა შეცდომა.

ამიტომ, მარტივი VBA კოდების გაშვებისას, თუ მაინც შეგხვდებათ ეს შეცდომა, ჯერ შეამოწმეთ თქვენი ცვლადის ტიპების ყველა მართლწერა.

2. სათანადო მითითების ნაკლებობა

ეს არის კიდევ ერთი მიზეზი ამ შეცდომის უკან. ეს არის სათანადო მითითების ნაკლებობა. ზოგჯერ ჩვენ ვიყენებთ ზოგიერთ ობიექტს ჩვენს კოდებში, რომლებსაც სჭირდებათ სათანადო მითითება Visual Basic Reference ყუთიდან . წინააღმდეგ შემთხვევაში, VBA ვერ ცნობს ობიექტს.

შეხედეთ შემდეგ VBA კოდს.

4364

გაუშვით ეს კოდი. თქვენ მიიღებთ იგივე ძველ შეცდომას „მომხმარებლის მიერ განსაზღვრული ტიპი არ არის განსაზღვრული“, აღნიშნავს ლექსიკონის ობიექტს . ეს იმიტომ ხდება, რომ VBA ვერ ცნობდა ლექსიკონის ობიექტს და განიხილავს მას მომხმარებლის მიერ განსაზღვრულ ცვლადად, რომელიც შეცდომით არ არის განსაზღვრული.

ახლა ყველაზე დიდი კითხვაა, როგორ მოვაგვაროთ ეს შეცდომა? Მარტივი. არსებობს 2 გზა ამ შეცდომის გადასაჭრელად.

⧪ გამოსავალი 1: წინაპირობის მითითების შემოწმება Visual Box Reference Box-დან

ეს არის ყველაზე ჭკვიანი გზა ამ პრობლემის გადასაჭრელად. გადადით ინსტრუმენტებზე > References ღილაკი Visual Basic ლენტით. დააწკაპუნეთ ცნობები .

გაიხსნება დიალოგური ფანჯარა, სახელწოდებით ცნობები . გადაახვიეთ და იპოვეთ Microsoft Scripting Runtime (ეს დამოკიდებულია ობიექტზე, რომელსაც იყენებთ. ლექსიკონიობიექტი საჭიროებს Microsoft Scripting Runtime ამოცნობას. ასე რომ, ობიექტის VBA კოდში გამოყენებისას, თქვენ უნდა იცოდეთ მისი წინაპირობა VBA-ს მიერ ამოცნობისთვის. დამატებითი ინფორმაციისთვის ეწვიეთ ამ ბმულს.). შეამოწმეთ.

ახლა დაბრუნდით და გაუშვით კოდი. თქვენ არ მიიღებთ შეცდომებს. რადგან VBA შეუძლია ამოიცნოს ლექსიკონის ობიექტი ამჯერად.

⧪ გამოსავალი 2: მისი გამოცხადება წმინდა ობიექტად და არა კონკრეტულ ობიექტად

არის ამ პრობლემის მოგვარების სხვა გზა. თქვენ შეგიძლიათ გამოაცხადოთ ობიექტი სუფთა ობიექტად და არა ლექსიკონის ობიექტად .

დაათვალიერეთ კოდების შემდეგი სტრიქონები.

8710

აქ მე გამოვაცხადე ცვლადი MyDictionary როგორც მარტივი ობიექტი და არა ლექსიკონი. ახლა თუ ამ კოდს გაუშვით, შეცდომას არ მიიღებთ.

ჰიუ ვესტი არის Excel-ის ძალიან გამოცდილი ტრენერი და ანალიტიკოსი, რომელსაც აქვს 10 წელზე მეტი გამოცდილება ინდუსტრიაში. მას აქვს ბაკალავრის ხარისხი ბუღალტერიასა და ფინანსებში და მაგისტრის ხარისხი ბიზნესის ადმინისტრირებაში. ჰიუს აქვს სწავლების გატაცება და შეიმუშავა სწავლების უნიკალური მიდგომა, რომელიც ადვილად გასაგები და გასაგებია. მისი ექსპერტი Excel-ის ცოდნა დაეხმარა ათასობით სტუდენტს და პროფესიონალს მთელს მსოფლიოში, გაეუმჯობესებინათ თავიანთი უნარები და გამოირჩეოდნენ თავიანთ კარიერაში. თავისი ბლოგის საშუალებით, ჰიუ უზიარებს თავის ცოდნას მსოფლიოს, სთავაზობს უფასო Excel გაკვეთილებს და ონლაინ ტრენინგებს, რათა დაეხმაროს ინდივიდებსა და ბიზნესს თავიანთი პოტენციალის სრულად მიღწევაში.