Как изменить свойство полного пути ссылок в VBA (Инструменты -> Ссылки)?

Я уверен, что есть разные способы сформулировать этот вопрос, но это конечный результат, которого я хочу достичь.

Итак, у меня есть установка, в которой код написан на C# и добавлен как функции в Excel. Он зависит от наличия определенного файла .tlb в Tools->References, который можно найти в окне VBA.

Пока я тестировал это, файл .tlb (и остальные) был на моем локальном диске, но теперь, когда проект работает, мне нужно перенести его на сетевой диск. Проблема в том, что я не могу найти способ изменить фактический файл (или путь к файлу), на который ссылаются, - он всегда смотрит на мой локальный путь.

Я пробовал несколько вещей:

Выполните шаги, перечисленные здесь https://support.microsoft.com/en-us/help/308340/how-to-check-and-remove-incorrect-project-references-in-the-visual-bas

Пробовал несколько кодов VBA, используя выражение .References.Remove. На самом деле это не удаляет ссылку из списка, а только снимает ее.

Я попытался удалить файл с моего локального диска (вызвав ошибку Excel, что ссылка была перемещена, удалена или переименована - хорошо), а затем добавить ссылку из нового места, которое я хочу. В результате получилось одно из двух:

1) Если я пытаюсь добавить его вручную - ничего не происходит, существующая ссылка остается не отмеченной, и ничего нового не добавляется (о котором я знаю).

2) Если я попытаюсь сделать это через выражение .References.AddFromFile "filepath", то ссылка будет отмечена галочкой, если она не была отмечена (это не заставляет работать внешние формулы), или ошибка, что ссылка с таким именем уже существует , если он был отмечен.


person Tom M    schedule 17.01.2020    source источник
comment
Дикое предположение: вы пытались заглянуть в реестры и удалить ссылку таким образом. Затем вы можете повторно добавить его с сетевым расположением .. может быть .. просто догадываюсь, на самом деле я сам не изучал его.   -  person Zac    schedule 17.01.2020
comment
@Zac Я думал, что это может решить проблему, но я не знаю, где они хранятся в реестре. У вас есть какое-то представление об этом, или я должен спросить старого Google?   -  person Tom M    schedule 17.01.2020
comment
:) Google - это то, с чего я бы начал... к сожалению, это не то, чем я могу заниматься на работе (хотя мог бы заняться этим на выходных). Я сделал что-то подобное для другого приложения, и это сработало для меня. Просто нужно определить, где они находятся в реестре.. проще сказать, чем сделать   -  person Zac    schedule 17.01.2020
comment
Rubberduck имеет утилиту для установки и удаления ссылок. Может быть, это может помочь.   -  person Ricardo Diaz    schedule 17.01.2020


Ответы (1)


Перекомпилируйте на сетевой диск следующим глупым способом.

Откройте редактор VBA Зайдите в каждый модуль Вставьте строку (неважно, что вы пишете) Нажмите ENTER Удалите строку, которую вы вставили Когда закончите, в меню нажмите Отладка \ Компиляция

Источник: Андреас Киллер https://answers.microsoft.com/en-us/msoffice/forum/all/ms-excel-error-cannot-run-the-macro-the-macros-may/3f3106b2-ae60-4d21-ac94-67e54e605922

person user14024322    schedule 30.07.2020