2016-05-26 1 views
0

Salut, j'ai une chauve-souris parfaitement travail nommé: start.bat contenant:excel vba ne sera pas exécuté .bat mais bat exécuter manuellement fonctionne bien

start C:\Users\*user*\Documents\*path*\hidebat.vbs 

et une fois qu'il est ouvert manuellement il fonctionne parfaitement, ce qui signifie il ouvre hidebat.vbs, ce qui ouvre un fichier .bat minimisé qui télécharge des fichiers sur mon cloud. D'où c'est vérifié.

J'ai ajouté

pause 

au start.bat pour voir ce qu'il fait et quand je dis Excel pour ouvrir le start.bat il ouvrira cmd et afficher la commande exacte nécessaire, mais ne va pas exécuter hidebat.vbs.

Je m'attends à ce qu'il y ait une contrainte de chemin ou une contrainte d'environnement quand elle est exécutée à partir d'Excel, ce qui l'empêche d'atteindre réellement cet environnement limité.

Dans Excel j'ai essayé d'appeler le .bat de 3 manières différentes avec:

Dim path As String 
path = Application.ActiveWorkbook.path 
path = path & "\" 
Dim MY_FILENAME3 As String 
MY_FILENAME3 = path & "start.bat" 

1.

retVal = Shell(MY_FILENAME3, vbNormalFocus) 

' NOTE THE BATCH FILE WILL RUN, BUT THE CODE WILL CONTINUE TO RUN. 
If retVal = 0 Then 
    MsgBox "An Error Occured" 
    Close #FileNumber 
    End 
End If 

2.

PathCrnt = ActiveWorkbook.path 
Call Shell(PathCrnt & "start.bat") 

3.

Dim batPath As String: batPath = path 

Call Shell(Environ$("COMSPEC") & " /c " & batPath & "start.bat", vbNormalFocus) 

Quelqu'un sait-il pourquoi il n'exécutera pas le fichier .bat, ou ce que je pourrais faire pour m'assurer qu'il fonctionnera correctement?

Remarque. Je pense que c'est parce qu'il ouvre le chemin par défaut, donc je vais le dire à "cd" au chemin réel où l'excel est enregistré et où les fichiers .bat sont.

Répondre

0

Oui, c'était-il, le chemin a été réglé sur une voie aléatoire/standard/travail/courant par commande, donc je devais ajouter:

Print #FileNumber, "cd " & path 

la macro Excel

de sorte que début .bat a ressemblé à:

cd *path* 
start *path*\hidebat.vbs 

Espérons que cela m'aide future.