«Не удается найти проект или библиотеку» для стандартных функций VBA - PullRequest
71 голосов
/ 03 февраля 2009

Итак, мне нужно запустить на своем компьютере чужое приложение Excel, и я получаю сообщение «Не могу найти проект или библиотеку» для стандартных функций, таких как дата, формат, шестнадцатеричное, среднее и т. Д.

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

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

  • Как мне сделать "VBA". неявные в моем проекте свойства / ссылки / и т. д.

-Adam

Ответы [ 5 ]

59 голосов
/ 03 февраля 2009

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

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

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

29 голосов
/ 08 июля 2011

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

  • В VB зайдите в Инструменты "Ссылки"
  • Снимите флажок с библиотеки «Crystal Analysis Common Controls 1.0». Или любая библиотека.
  • Просто оставьте эти 5 ссылок:
    1. Visual Basic для приложений (это библиотека, которая определяет язык VBA.)
    2. Библиотека объектов Microsoft Excel (определяет все элементы Excel.)
    3. OLE Automation (Здесь указываются типы для связывания и встраивания документов, а также для автоматизации других приложений и «подключения» системы COM, которые Excel использует для связи с внешним миром.)
    4. Microsoft Office (Это определяет вещи, которые являются общими для всех программ Office, такие как панели команд и элементы управления панели команд.)
    5. Microsoft Forms 2.0 Это необходимо, если вы используете форму пользователя. Эта библиотека определяет такие вещи, как пользовательская форма и элементы управления, которые вы можете поместить в форму.
  • Тогда сохраните.
15 голосов
/ 05 марта 2009

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

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

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

9 голосов
/ 11 июля 2009

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

0 голосов
/ 05 февраля 2018

В моем случае я проверял работу, выполненную на моем офисном компьютере (с установленным Visio) дома (без Visio). Несмотря на то, что VBA, похоже, зависал от простых функций по умолчанию, проблема заключалась в том, что у меня все еще были ссылки на библиотеки Visio.

...