Змест
Адна з найбольш распаўсюджаных памылак, з якімі мы сутыкаемся падчас працы з VBA у Excel, заключаецца ў тым, што тып, вызначаны карыстальнікам, не вызначаны. У гэтым артыкуле я пакажу вам, чаму ўзнікла гэтая памылка і як яе вырашыць.
Спампаваць практычны сшытак
Спампуйце гэты практычны сшытак, каб займацца падчас заняткаў чытаюць гэты артыкул.
Вызначаны карыстальнікам тып не вызначаны.xlsm
2 Прычыны і шляхі вырашэння Вызначаны карыстальнікам Тып не вызначаны ў Excel VBA
Ёсць 2 асноўныя праблемы, звязаныя з гэтай частай памылкай у Excel VBA . Разгледзім іх дэталёва і знойдзем шляхі іх вырашэння.
1. Арфаграфічная памылка падчас дэкларацыі зменных
Гэта асноўная прычына гэтай памылкі. Часцей за ўсё памылка “Вызначаны карыстальнікам тып не вызначаны” узнікае з-за арфаграфічнай памылкі пры аб'яве зменных.
Паглядзіце на наступныя радкі кодаў.
4602
Калі вы запусціце гэты код, вы атрымаеце паведамленне пра памылку з паведамленнем аб наяўнасці памылкі “Вызначаны карыстальнікам тып не вызначаны”. Разам з ім вы знойдзеце другі радок кода, вылучаны сінім, дзе я напісаў “strng” замест “радок” .
Спадзяюся, вы зразумелі сутнасць. VBA не можа распазнаць тып зменнай “strng” , таму ён разглядае яе як новы тып зменнай і думае, што вы яе дзесьці вызначылі. Але калі гэтавыявіў, што вы яе нідзе не аб'явілі, выклікала памылку.
Такім чынам, падчас выканання простых кодаў VBA , калі вы ўсё роўна сутыкнецеся з гэтай памылкай, спачатку праверце ўсе напісанні вашых тыпаў зменных.
2. Адсутнасць належных спасылак
Гэта яшчэ адна прычына гэтай памылкі. Гэта адсутнасць належнай спасылкі. Часам мы выкарыстоўваем некаторыя аб'екты ў нашых кодах, якія патрабуюць правільнай спасылкі з Вокны даведкі Visual Basic . У адваротным выпадку VBA не распазнае аб'ект.
Паглядзіце на наступны код VBA .
4235
Запусціце гэты код. Вы атрымаеце тую самую старую памылку «Вызначаны карыстальнікам тып не вызначаны», выдзяляючы аб'ект Слоўнік . Гэта таму, што VBA не можа распазнаць аб'ект Dictionary і разглядае яго як вызначаную карыстальнікам зменную, якая не была вызначана памылкова.
Цяпер галоўнае пытанне, як вырашыць гэтую памылку? лёгка. Ёсць 2 спосабу вырашэння гэтай памылкі.
⧪ Рашэнне 1: Праверка папярэдняй спасылкі з Visual Box Reference Box
Гэта самы разумны спосаб вырашыць гэтую праблему. Перайдзіце да Інструменты > Спасылкі кнопка на стужцы Visual Basic . Націсніце на Спіс літаратуры .
Адкрыецца дыялогавае акно пад назвай Спасылкі . Пракруціце і знайдзіце Microsoft Scripting Runtime (Гэта залежыць ад аб'екта, які вы выкарыстоўваеце. Слоўнікаб'ект патрабуе Microsoft Scripting Runtime , каб быць распазнаным. Такім чынам, пры выкарыстанні аб'екта ў кодзе VBA вы павінны ведаць яго неабходныя ўмовы для распазнання VBA. Наведайце гэтую спасылку для атрымання дадатковай інфармацыі.). Праверце.
Зараз вярніцеся і запусціце код. Вы не атрымаеце ніякіх памылак. Таму што VBA на гэты раз можа распазнаць аб'ект Слоўнік .
⧪ Рашэнне 2: аб'явіць яго як чысты аб'ект, а не як канкрэтны аб'ект
Ёсць іншы спосаб вырашыць гэтую праблему. Вы можаце аб'явіць аб'ект як чысты аб'ект, а не як аб'ект Dictionary .
Звярніце ўвагу на наступныя радкі кодаў.
8169
Тут я абвясціў зменную MyDictionary як просты аб'ект, а не Слоўнік. Цяпер, калі вы запусціце гэты код, вы не атрымаеце ніякай памылкі.