Excel VBA erreur à l'aide de WScript.Shell.Exécuter
Après avoir récemment mise à niveau à partir de microsoft Excel 2010 Excel 2013, j'ai déménagé un complément personnalisé (.xlam) à la nouvelle Application.Chemin_accès_librairie répertoire (C:\Program Files\Microsoft Office 15\root\office15\Library\BTRTools). Il y a un peu de code qui lance un fichier exécutable (exe) (situé dans le sous répertoire de l'add-in). Cependant, depuis la mise à niveau/déplacer, je ne suis pas d'avoir une erreur:
PrettyPrintXml.exe - Application Error
The application was unable to start correctly (0xc000007b). Click OK to close the application.
Je suis évidemment assez convaincu que c'est les autorisations de fichier. J'ai ajouté moi-même les autorisations de plein droit à l' \dossier Bibliothèque (et tous les sous-marins). A noter que je pense que j'ai eu à le faire même avec Excel 2010 (dossier à C:\Program Files (x86)\Microsoft Office\Office14\Library) pour faire fonctionner les choses.
Cependant, après tout cela, je suis toujours bloqué et ne peut pas lancer le fichier exe. Toutes les idées/suggestions sur la façon de faire ce travail?
Code est assez standard:
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
est un STATUS_INVALID_IMAGE_FORMAT
erreur. Il peut être un 32 - et 64-bit dll problème plutôt que d'un problème d'autorisations.Pas sûr à 100%. Si je déplace mon ensemble de l'ajouter dans le répertoire de l'ancien emplacement (..Office14\Library) tout fonctionne. Le problème avec ceci est puis "lien automatique de mise à jour" ne fonctionne pas b/c Excel recherche uniquement pour des compléments dans le Chemin_accès_librairie et UserLibraryPath répertoires. Vous pensez que cela peut être parce que même si mon Excel installer est de 32 bits, il a fait ses Chemin_accès_librairie répertoire de la c:\Program Files\ au lieu de c:\Program Files (x86)? Je suis sûr que j'ai essayé le UserLibraryPath et a obtenu le même résultat, mais je vais vérifier ça aujourd'hui.
OriginalL'auteur Terry | 2013-09-27
Vous devez vous connecter pour publier un commentaire.
Je sais que votre question est "Pourquoi n'est-ce pas le travail", mais j'ai pensé que vous pourriez être intéressé à une solution alternative: Il est originaire de VBA PrettyPrintXML. Vous devez ajouter une référence à la bibliothèque MSXML dans votre projet VBA en cliquant sur "Outils" ---> "Références..." et cochez la case à côté de
Microsoft XML, v6.0
(ou quelle que soit la version incluse avec votre version de microsoft Office/Windows).OriginalL'auteur Blackhawk
Merci de modifier le titre de votre question, parce que VBA Excel est en mesure d'utiliser WScript.Shell.Exécuter, sinon vous ne seriez pas obtenir votre erreur.
Comme pour la question de l'heure, cela ressemble à un 32-bit /64-bit problème. Déterminer si le programme que vous avez demandé est approprié pour votre système et si il essaie de charger le droit Dll.
Le problème n'est pas les autorisations de fichier, puis vous obtenez un autre code d'état.
OriginalL'auteur Anonymous
Vous devez utiliser un chemin sans espaces, quelque chose de simple comme "C:\BTRTools'. Ensuite, il doit travailler.
OriginalL'auteur Marijan