Я создал простую DLL в Visual Studio 2012, которая выполняет вычисления. Я вызываю эту DLL из VBA в Excel 2010, используя следующий синтаксис:
Declare Sub MyFunction Lib "MyDll.dll" (ByRef param1 As Double, ByVal param2 As Double)
Эта функция отлично работает на моей машине. Когда я пытаюсь запустить эту DLL на другом компьютере, я получаю следующую ошибку:
Run-time error '53': File not found: MyDll.dll
Однако, когда я запускаю Excel (на другом компьютере) в режиме администратора (с повышенными правами), я не получаю эту ошибку, и все работает отлично.
Можно ли как-нибудь заставить это работать, не заставляя пользователя запускать Excel в качестве администратора?
Из того, что я могу догадаться, ваша DLL не находится в рабочем каталоге, каталоге переменных PATH или системном каталоге. Excel не ищет в каталоге, в котором находится ваша DLL, поэтому вам нужно переместить вашу DLL в системный каталог, один из каталогов переменных PATH или отличный рабочий каталог.
Других решений пока нет …