Запустить Python скрипт формы VBA - PullRequest
0 голосов
/ 10 февраля 2020

Мне нужно запустить python скрипт из VBA. До сих пор мне удавалось запустить python:

Sub py_launcher_test()
Dim objShell As Object
Dim PythonExe, PythonScript As String
Dim command As String

Set objShell = VBA.CreateObject("Wscript.Shell")


    PythonExe = "C:/Users/belose/PycharmProjects/week2/venv/Scripts/python.exe"

    command = Chr(34) & PythonExe & Chr(34) 
    objShell.Run command, 7, True

End Sub 

Но при попытке запустить сценарий Speci c командная строка просто мигает и исчезает:

Sub py_launcher_test()
Dim objShell As Object
Dim PythonExe, PythonScript As String
Dim command As String

Set objShell = VBA.CreateObject("Wscript.Shell")


    PythonExe = "C:/Users/belose/PycharmProjects/week2/venv/Scripts/python.exe"
    PythonScript = "C:/Users/belose/PycharmProjects/week2/VGM/helloworld.py"
    command = Chr(34) & PythonExe & Chr(34) & " " & Chr(34) & PythonScript & Chr(34)
    objShell.Run command, 7, True

End Sub

Что делать Я здесь не так?

UPD:

Я пробовал решения из здесь :

Sub py_launcher_test2()

    RetVal = Shell("C:/Users/belose/PycharmProjects/week2/venv/Scripts/python.exe C:/Users/belose/PycharmProjects/week2/VGM/helloworld.py")

End Sub

Или:

Sub py_launcher_test3()
Dim Ret_Val
    args = """C:/Users/belose/PycharmProjects/week2/VGM/helloworld.py"""
    Ret_Val = Shell("C:/Users/belose/PycharmProjects/week2/venv/Scripts/python.exe " & " " & args, vbNormalFocus)
    If Ret_Val = 0 Then
         MsgBox "Couldn't run python script!", vbOKOnly
End If

End Sub

Или:

Sub py_launcher_test4()
    RetVal = Shell("C:/Users/belose/PycharmProjects/week2/venv/Scripts/python.exe C:/Users/belose/PycharmProjects/week2/VGM/helloworld.py", vbNormalFocus)
End Sub

Все эти попытки имеют одинаковый результат, cmd просто мигает и исчезает. И вот как это выглядит, когда я ввожу команду вручную: cmd

1 Ответ

0 голосов
/ 11 февраля 2020

Решение заключается в добавлении «cmd / k» в начале: RetVal = Shell («cmd / k» & »C: / Users / belose / PycharmProjects / week2 / venv / Scripts / python .exe "&" "&" C: / Users / belose / PycharmProjects / week2 / VGM / helloworld.py ", vbNormalFocus)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...