«Не удается найти проект или библиотеку» для стандартных функций VBA

55

Таким образом, мне нужно запускать приложение другого приложения на моем ПК, и я получаю "Не могу найти проект или библиотеку" на стандартных функциях, таких как дата, формат, шестнадцатеричный, средний и т.д.

Некоторые исследования показывают, что если я префикс этих функций с помощью "VBA" . как в "VBA.Date", тогда он будет работать нормально.

Веб-страницы предполагают, что это связано с моими проектными рекомендациями в моей системе, тогда как они должны быть в порядке в системе разработчиков. Я буду иметь дело с этим в течение некоторого времени от других и будет распространять эти приложения для многих других, поэтому мне нужно понять, что не так с моей настройкой excel, которую мне нужно исправить, или что нужно изменить в xls, чтобы он работал в различных системах. Я бы хотел, чтобы все не использовали "VBA" . как явная ссылка, но если нет идеального решения, я полагаю, что нам нужно будет делать.

  • Как мне создать "VBA" . неявно в моих свойствах/ссылках/etc?

-Adam

  • 0
    Вы разрабатываете в одной версии Excel и распространяете среди пользователей, используя другую версию?
  • 0
    Это может иметь место - я не знаю, какую версию используют разработчики. Я проверю.
Показать ещё 1 комментарий
Теги:
excel-vba
namespaces
reference

4 ответа

47
Лучший ответ

Я видел ошибки в стандартных функциях, если была ссылка на совершенно другую библиотеку.

В редакторе VBA запустите команду "Компилировать" из меню, а затем откройте диалоговое окно "Ссылки", чтобы увидеть, нет ли чего-то, и если да, попробуйте добавить эти библиотеки.

В общем, представляется хорошей практикой скомпилировать полный код VBA, а затем сохранить документ перед распространением.

  • 4
    Согласен. Недостающие ссылки будут четко обозначены пропущенными. Я подозреваю, что в вашем случае это более поздняя версия библиотеки Excel, которую можно обойти с поздним связыванием или выбрав более раннюю библиотеку. Я не верю, что компиляция кода поможет с отсутствующими ссылками.
  • 0
    Хм. Я получаю запрос на пароль VBAproject. Сюжет утолщается.
Показать ещё 3 комментария
27

У меня была та же проблема. Это сработало для меня:

  • В VB перейдите в Инструменты & raquo; Ссылки
  • Снимите флажок с библиотеки "Crystal Analysis Common Controls 1.0". Или любая библиотека.
  • Просто оставьте эти 5 ссылок:
    • Visual Basic для приложений (это библиотека, которая определяет язык VBA.)
    • Библиотека объектов Microsoft Excel (определяет все элементы Excel.)
    • OLE Automation (Здесь указаны типы для связывания и встраивания документов и для автоматизации других приложений и "сантехника" системы COM, которую Excel использует для связи с внешним миром.)
    • Microsoft Office (Это определяет вещи, общие для всех программ Office, таких как командные бары и элементы командной строки).
    • Microsoft Forms 2.0 Это требуется, если вы используете пользовательскую форму. В этой библиотеке определяются такие элементы, как форма пользователя и элементы управления, которые вы можете разместить в форме.
  • Затем сохраните.
  • 0
    Мне пришлось снять флажок «Библиотека объектов MicroSoft MapPoint 19.0», которая не использовалась в рассматриваемом макросе, но использовалась где-то еще в электронной таблице.
  • 2
    Моим был «Microsoft Windows Common Controls 6.0 (SP4)», который присутствовал на моем компьютере Excel 2010, но на ноутбуке с Excel 2013. Кроме того, он, кажется, используется (я получаю «Не удается удалить элемент управления или ссылку; в использовании ", если я снимаю галочку с этого), поэтому мне нужно выяснить, что его использует, и избавиться от этого ...
Показать ещё 1 комментарий
11

Я столкнулся с этой точной проблемой и обнаружил, что на компьютере пользователя одна из библиотек, на которую я зависела, была отмечена как "MISSING" в диалоговом окне ссылок. В этом случае это была некоторая библиотека офисных шрифтов, доступная в моей версии Office 2007, но не на рабочем столе клиента.

Ошибка, которую вы получаете, - это полная красная селедка (как указано в divo).

К счастью, я ничего не использовал в библиотеке, поэтому мне удалось полностью удалить его из XLA-ссылок. Я предполагаю, что расширение предлагаемой лучшей практики divo было бы для тестирования, чтобы проверить XLA на всех целевых версиях Office (неважная идея в любом случае).

7

В моем случае, эта функция была AMBIGUOUS, поскольку она была определена в библиотеке VBA (присутствует в моих ссылках), а также в библиотеке объектов Microsoft Office (также присутствует). Я удалил библиотеку объектов Microsoft Office и вуаля! Нет необходимости использовать VBA. Приставка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню