Lost your password?


Хитрости »
Основные понятия (26)
Сводные таблицы и анализ данных (10)
Графики и диаграммы (5)
Работа с VB проектом (12)
Power BI и Power Query (20)
Условное форматирование (5)
Списки и диапазоны (5)
Макросы(VBA процедуры) (68)
Разное (43)
Баги и глюки Excel (4)

Ошибка - Cant find project or library

 

Вы сами написали макрос и кому-то выслали. Макрос хороший и рабочий. Вы сами проверили и перепроверили. Но тут Вам сообщают - "Макрос не работает". Выдает ошибку - Can't find project or library. Вы запускаете файл - нет ошибки. Еще раз - нет. Как ни пытаетесь, какие данные не подсовываете, а ошибки такой нет. Вы уверены, что файл рабочий полностью(и верно - ведь у Вас работает), а Вам пытаются доказать обратное. Вы начинаете долго объяснять как пользоваться, что делать и т.д. и т.п. Ошибка не исчезает. Что делать-то? В чем проблема? Даже офис переустановили - у Вас работает, у них нет. А проблема проста: как и любой программе, VBA нужно иметь свой набор библиотек и компонентов, посредством которых он взаимодействует с Excel(и не только). И в разных версиях Excel эти библиотеки и компоненты могут различаться. И когда Вы делаете у себя программу, то VBA ставит ссылку(или же Вы сами) на какой-либо компонент либо библиотеку, которая может отсутствовать на другом компьютере. Вот тогда и появляется эта ошибка. Что же делать? Все очень просто:

  1. Открываете редактор VBA
  2. Идете в Tools-References
  3. Находите там все пункты, напротив которых красуется MISSING. Снимаете с них галочки.
  4. Жмете Ок.
  5. Сохраняете файл.

Эти действия необходимо проделать, когда выполнение кода прервано и ни один код проекта не выполняется. Возможно, придется перезапустить Excel. И все это должен проделать человек, у которого данная ошибка возникла. Это не всегда удобно. А поэтому лично я рекомендовал бы не использовать сторонние библиотеки и раннее связывание, если это не вызвано необходимостью. Всегда проверяйте ссылки в файлах перед отправкой получателю. Оставьте там лишь те ссылки, которые необходимы, либо которые присутствуют на всех версиях. Смело можно оставлять следующие(это касается именно VBA-Excel):

  • Visual Basic for application(эту ссылку Вы попросту не сможете отключить);
  • Microsoft Excel XX.0 Object Library(вместо X версия приложения - 12, 11 и т.д.)-эту ссылку Вы не сможете отключить;
  • Microsoft Forms X.0 Object Library(эту ссылку Вы не сможете отключить);
  • OLE Automation(хотя она тоже не нужна -  но и вреда никакого).

Может я перечислил не все - но эти точно имеют полную совместимость между разными версиями Excel.

Еще, для автоматического поиска и отключения ошибочных ссылок на такие библиотеки можно делать и макросом:

Sub Remove_MISSING()
    Dim oReferences As Object, oRef As Object
    Set oReferences = ThisWorkbook.VBProject.References
    For Each oRef In oReferences
        If (oRef.IsBroken) Then oReferences.Remove Reference:=oRef
    Next
End Sub

Но для работы этого макроса необходимо:

  1. проставить доверие к проекту VBA:
    Excel 2010-2019 - Файл-Параметры-Центр управления безопасностью-Параметры макросов-поставить галочку "Доверять доступ к объектной модели проектов VBA"
    Excel 2007 - Кнопка Офис-Параметры Excel-Центр управления безопасностью-Параметры макросов-поставить галочку "Доверять доступ к объектной модели проектов VBA"
    Excel 2003- Сервис - Параметры-вкладка Безопасность-Параметры макросов-Доверять доступ к Visual Basic Project
  2. проект VBA не должен быть защищен.

Так же Can't find project or library возникает если у Вас просто не подключена какая-либо библиотека, которая используется в коде. Тогда не будет MISSING. Надо просто определить, в какую библиотеку входит константа, объект или свойство, которое выделяет редактор при выдаче ошибки, и подключить эту библиотеку.
Например, есть такой кусок кода:

Sub CreateWordDoc()
    Dim oWordApp As Word.Application
    Set oWordApp = New Word.Application
    oWordApp.Documents.Add

если библиотека Microsoft Excel XX.0 Object Library(вместо XX версия приложения - 11, 12, 16 и т.д.) не подключена, то будет подсвечена строка oWordApp As Word.Application.


Статья помогла? Поделись ссылкой с друзьями!
  Плейлист   Видеоуроки

Поиск по меткам

Access apple watch Multex Power Query и Power BI VBA управление кодами Бесплатные надстройки Дата и время Записки ИП Надстройки Печать Политика Конфиденциальности Почта Программы Работа с приложениями Разработка приложений Росстат Тренинги и вебинары Финансовые Форматирование Функции Excel акции MulTEx ссылки статистика
Обсуждение: 46 комментариев
  1. Георгий:

    @Дмитрий(Админ)
    Большое спасибо за наставление на путь истинный.

  2. Алексей:

    Огромное спасибо, за такое внятное объяснение! Убил на эту ошибку два дня и половину мозга. Еще раз спасибо!

  3. Goober:

    Спасибо, большущее!!! Столько времени потратил... А оказалось все так просто.

  4. Илья:

    Спасибо большое! Как все просто, если знать! Мучался, вручную делал действия за макросы, теперь жизнь моя улучшилась!!!
    СПАСИБО!!!!!!!

  5. Анастасия:

    Спасибо огромадное!

  6. Alex:

    Супер. Спасибо. Все починилось. Только с бубном немного плясать пришлось, т.к. "Идете в Tools-References" а кнопка там не активна. Перезапуск экселя помог.

  7. Aisha:

    Здравствуте! У меня та же ошибка в программе, но у меня нету ссылки Microsoft Forms X.0 Object Library, и еще MISSING выходит вот так MISSING:Microsoft Excel XX.0 Object Library, получается с него я не могу снять галочку? Программу писала не я и вообще не знаю как писать, но пытаюсь сделать так, чтоб она работала..

  8. Aisha, а при чем здесь то, что у Вас нет ссылки Microsoft Forms X.0 Object Library? прочитайте внимательно, что необходимо сделать для устранения проблемы:
    Открываете редактор VBA
    Идете в Tools-References
    Находите там все пункты, напротив которых красуется MISSING. Снимаете с них галочки.
    Жмете Ок.
    Сохраняете файл.

    Это все написано в начале статьи. Больше ничего не надо делать. Не надо выхватывать из статьи обрывки, а потом странным образом склеивать эти обрывки в свои формулировки и предположения.

  9. Aisha:

    После того, как я убрала эти галочки, выходит другая ошибка User-defined type not define про Excel.Workbook, так как MISSING выходил вот так MISSING:Microsoft Excel 11.0 Object Library. И что мне делать тогда?

  10. Файл сохранили, закрыли? Сохраните, закройте Excel полностью. Откройте файл и попробуйте.

Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум


Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Тренинги

Заказать
Юридическая информация

Использование материалов сайта

Политика Конфиденциальности

ИП Щербаков Дмитрий Валентинович
ОГРНИП: 318502700083307
ИНН: 504013350772

Наши партнеры

Перейти
Перейти

Счетчики

Рейтинг@Mail.ru Яндекс.Метрика
© 2022 Excel для всех   Войти