Привет У меня есть совершенно рабочий битой по имени: start.bat , содержащий:Excel VBA не будет выполняться .bat, но вручную выполнение летучая отлично работает
start C:\Users\*user*\Documents\*path*\hidebat.vbs
и когда он вручную открыт он отлично работает, имея в виду он открывает hidebat.vbs, который открывает .bat, который минимизирует загрузку файлов в мое облако. Следовательно, это проверено.
Я добавил
pause
к start.bat, чтобы посмотреть, что она делает, и когда я говорю первенствовать, чтобы открыть start.bat он откроет CMD и отображать точную команду по мере необходимости, но не будет выполнять hidebat.vbs.
Я ожидаю, что есть какое-то ограничение по пути или ограничение среды, когда оно выполняется от excel, что не позволяет ему фактически выйти из этой ограниченной среды.
В первенствует я попытался вызова .bat в 3 различными способами с:
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)
Кто-нибудь знает, почему он не выполнит файл .bat или что я могу сделать, чтобы он работал правильно?
Примечание. Я думаю, это потому, что он открывает путь по умолчанию, поэтому я собираюсь рассказать об этом «cd» к фактическому пути, в котором сохраняется excel и где находятся файлы .bat.