После обновления с Excel 2010 до Excel 2013 я переместил пользовательскую надстройку (.xlam) в новый каталог Application.LibraryPath (C: \ Program Files \ Microsoft Office 15 \ корень \ office15 \ Library \ BTRTools). Существует немного кода, который запускает исполняемый файл (exe) (находится в подкаталоге надстройки). Однако, поскольку обновления/двигаться, я не получаю сообщение об ошибке:Ошибка Excel VBA с использованием WScript.Shell.Run
PrettyPrintXml.exe - Application Error
The application was unable to start correctly (0xc000007b). Click OK to close the application.
Я, очевидно, довольно уверен, что права доступа к файлам. Я явно добавил себе разрешения с полными правами на папку \ Library (и все подмножества). Заметьте, что я должен был сделать это даже с Excel 2010 (папка в C: \ Program Files (x86) \ Microsoft Office \ Office14 \ Library), чтобы все работало.
Однако, после всего этого, я все еще застреваю и не могу запустить exe-файл. Любые идеи/предложения о том, как сделать эту работу?
код является довольно стандартным:
Public Sub RunShellExecute(sFile As String, Optional params As String = "", Optional wait As Boolean = False)
Dim wsh As Object: Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = wait
Dim windowStyle As Integer: windowStyle = 1
Dim exe As String: exe = IIf(Left(sFile, 1) <> """", """" & sFile & """", sFile)
Dim exeParams As String: exeParams = IIf(params <> "", " " & params, "")
Dim errorCode As Integer: errorCode = wsh.Run(exe & exeParams, windowStyle, waitOnReturn)
If errorCode = 0 Then
'// MsgBox "Done! No error to report."
Else
MsgBox "Program exited with error code " & errorCode & "."
End If
End Sub
'0xc000007b' является' STATUS_INVALID_IMAGE_FORMAT' ошибкой. Это может быть проблема с 32-битной 64-разрядной dll, а не проблема с разрешениями. –
@NateHekman Не уверен в этом 100%. Если я переведу весь каталог надстройки в прежнее место (..Office14 \ Library), все будет работать. Проблема с этим заключается в том, что «автоматическое обновление ссылок» не работает. B/c Excel ищет только надстройки в каталогах LibraryPath и UserLibraryPath. Вы думаете, что это может быть потому, что хотя моя установка Excel 32-разрядная, она сделала свой каталог LibraryPath c: \ Program Files \ вместо c: \ Program Files (x86)? Я почти уверен, что попробовал UserLibraryPath и получил тот же результат, но сегодня я проверю это. – Terry