Mundarija
Excelda VBA bilan ishlashda biz duch keladigan eng keng tarqalgan xatolardan biri bu foydalanuvchi tomonidan belgilangan turning aniqlanmaganligidir. Ushbu maqolada men sizga nima uchun bu xatolik yuzaga kelganligini va bu xatoni qanday hal qilishni ko'rsataman.
Mashq qilish kitobini yuklab oling
Mashq qilish uchun ushbu mashq kitobini yuklab oling. ushbu maqolani oʻqimoqda.
Foydalanuvchi tomonidan aniqlangan tur Belgilanmagan.xlsm
2 sabablari va yechimlari Foydalanuvchi tomonidan aniqlangan Excel VBA da turi aniqlanmagan
Excel VBA da tez-tez uchrab turadigan bu xato ortida 2 asosiy muammo bor. Keling, ularni batafsil o'rganib chiqamiz va ularni hal qilish yo'llarini aniqlaymiz.
1. O'zgaruvchilarni e'lon qilishda imlo xatosi
Ushbu xatoning asosiy sababi shu. Ko'pincha “Foydalanuvchi tomonidan belgilangan tur aniqlanmagan” xatosi o'zgaruvchilarni e'lon qilishda imlo xatosi tufayli yuzaga keladi.
Quyidagi kod qatorlariga qarang.
2539
Agar siz ushbu kodni ishga tushirsangiz, “Foydalanuvchi tomonidan aniqlangan tur aniqlanmagan” xatosi borligi haqida xabar beruvchi xato oynasini olasiz. U bilan birga siz kodning koʻk rang bilan ajratilgan ikkinchi qatorini topasiz, u yerda men “string” oʻrniga “strng” yozganman.
Umid qilamanki, siz fikrni tushunasiz. VBA o'zgaruvchi turini taniy olmadi “strng” , shuning uchun u uni yangi o'zgaruvchi turi deb hisobladi va siz uni biror joyda aniqlagan deb o'yladi. Lekin qachonSiz uni hech qayerda e'lon qilmaganligingizni aniqladingiz, u xatoga sabab bo'ldi.
Shuning uchun oddiy VBA kodlarini ishlatayotganda, agar siz qandaydir tarzda bu xatoga duch kelsangiz, avval o'zgaruvchi turlarining barcha imlolarini tekshiring.
2. To'g'ri havolaning yo'qligi
Bu xatoning yana bir sababi. Bu to'g'ri havolaning etishmasligi. Ba'zan biz kodlarimizda Visual Basic Reference box dan to'g'ri havolaga muhtoj bo'lgan ba'zi ob'ektlardan foydalanamiz. Aks holda, VBA ob'ektni tanimaydi.
Quyidagi VBA kodiga qarang.
2227
Ushbu kodni ishga tushiring. Siz bir xil eski xatoni olasiz “Foydalanuvchi tomonidan belgilangan tur aniqlanmagan”, Lug'at obyektini ta'kidlab . Buning sababi, VBA Lug'at ob'ektini taniy olmadi va uni foydalanuvchi tomonidan belgilangan o'zgaruvchi sifatida ko'rib chiqdi, bu xato aniqlanmagan.
Endi eng katta savol - bu xatoni qanday hal qilish kerak? Oson. Bu xatoni yechishning 2 usullari mavjud.
⧪ 1-yechim: Visual Box ma'lumot qutisidan zaruriy havolani tekshirish
Bu bu muammoni hal qilishning eng aqlli usuli. Asboblar > Visual Basic lentasidagi References tugmasi. Ma'lumotnomalar tugmasini bosing.
Ma'lumotnomalar deb nomlangan dialog oynasi ochiladi. O'ting va Microsoft Scripting Runtime -ni toping (Bu siz foydalanayotgan ob'ektga bog'liq. Lug'atob'ekt tan olinishi uchun Microsoft Scripting Runtime kerak. Shunday qilib, VBA kodida ob'ektdan foydalanayotganda, VBA tomonidan tan olinishi uchun uning zaruriy shartini bilishingiz kerak. Qo'shimcha ma'lumot olish uchun ushbu havolaga tashrif buyuring.). Uni tekshiring.
Endi qaytib keling va kodni ishga tushiring. Siz hech qanday xatoga duch kelmaysiz. Chunki VBA bu safar Lug'at obyektini taniy oladi.
⧪ 2-yechim: Uni maxsus ob'ekt emas, balki sof ob'ekt sifatida e'lon qilish
Bu muammoni hal qilishning yana bir yo'li bor. Ob'ektni Lug'at ob'ekti emas, balki sof ob'ekt sifatida e'lon qilishingiz mumkin.
Quyidagi kod qatorlariga e'tibor bering.
3062
Bu yerda men MyDictionary oʻzgaruvchisini Lugʻat emas, balki oddiy obʼyekt sifatida eʼlon qildim. Endi bu kodni ishga tushirsangiz, hech qanday xatolikka yoʻl qoʻymaysiz.