Есть ли способ заставить код VBA запускать код Python? - PullRequest
0 голосов
/ 21 мая 2019

Я прочитал все онлайн-вопросы по этой проблеме, и ни один из них, похоже, не работает для меня.Я хочу написать код в VBA таким образом, чтобы при нажатии кнопки мой код на Python автоматически запускался.

Я получаю сообщение об ошибке «файл не найден», когда я запускаю код, но я проверил путь и знаю, что он правильный.

Код, который я пробую:

Sub MyMacro()
    Shell("C:/Users/RGilsburg/New folder/pythonw.exe" & "F:/Asset/Global/Port/untitled1.py")
End Sub

Может кто-нибудь сказать мне, где ошибка?

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

это может быть немного невежественно с моей стороны, так как я ничего не знаю о Python и немного о VBA, но вы добавили Python в качестве ссылки в редакторе VBA.

если нет

, перейдите в выпадающий список инструментов в редакторе vba, выберите ссылки и посмотрите, сможете ли вы найти python.

0 голосов
/ 21 мая 2019

Команда оболочки должна работать, однако у вас есть некоторые проблемы с командой, которую нужно выполнить:

  • Вам нужно поставить пробел между командой Python и файлом python.
  • Используйте косую черту, а не косую черту, если вы находитесь на Windows
  • Если файл содержит пробел, вы должны поместить его в двойные кавычки ". Если вы хотите иметь символ кавычки в строке в VBA, вы должны удвоить его.

По сути, параметр Shell должен быть таким же, как вы вводите его в командной строке. Чтобы проверить это, запишите команду в строковую переменную и запишите ее в ближайшее окно (Ctrl + G). Скопируйте его оттуда и вставьте в окно CMD.

Попробуйте

Dim python as string, script as string, cmd As String
python = """C:\Users\RGilsburg\New folder\pythonw.exe"""
script = "F:\Asset\Global\Port\untitled1.py"
cmd =  python & " " & script
Debug.print cmd

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