有没有办法让VBA代码运行Python代码?

时间:2019-05-21 14:53:12

标签: python excel vba

我已经阅读了有关此问题的所有在线问题,但似乎没有一个对我有用。我想在VBA中编写代码,这样当按下按钮时,我在Python中的代码会自动开始运行。

我在运行代码时遇到找不到文件的错误,但是我检查了路径,并且知道它是正确的。

我正在尝试的代码是:

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

谁能告诉我错误在哪里?

2 个答案:

答案 0 :(得分:0)

shell命令应该可以运行,但是,要执行的命令存在一些问题:

  • 您需要在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

答案 1 :(得分:0)

这可能让我有点无知,因为我对python几乎一无所知,但是对vba却一无所知,但是您是否在vba编辑器中添加了python作为参考。

如果不是

转到vba编辑器中的工具下拉列表,选择引用,看看是否可以找到python。