【问题标题】:Open IDLE and run module through VBA通过VBA打开IDLE并运行模块
【发布时间】:2018-06-14 12:25:44
【问题描述】:

我知道如何使用 VBA 通过 cmd 运行 python 脚本,并且我知道如何使用 VBA 打开 IDLE,但是是否可以在 VBA 中创建一个模块,在 IDLE 中打开一个 python 脚本并自动运行它蟒蛇脚本?这是我通过 VBA 和 cmd 打开 IDLE 的代码(但它不运行脚本):

Sub runidlefrompython()

Dim args As String

args = "C:\users\opera\AppData\Local\Programs\Python\Python36\Lib\idlelib\idle.py"

Shell "cmd.exe /S /K" & "C:\Users\opera\AppData\Local\Programs\Python\Python36\python.exe" & " " & args & " -r " & "C:\PythonPrograms\Hello.py", vbNormalFocus

End Sub

【问题讨论】:

  • 另外,是否可以在 python 脚本本身中添加一些内容以使其在打开 IDLE 时自动运行?
  • 来自the answer here,我想说Shell "cmd.exe /S /K" & "C:\Users\opera\AppData\Local\Programs\Python\Python36\python.exe" & " " & args & " -r " & "C:\PythonPrograms\Hello.py", vbNormalFocus
  • 当我这样做时,我得到一个“无效参数”错误
  • nvm 成功了!我只需要在“-r”之前和之后放置一个空格。谢谢@Vincent

标签: python vba excel python-idle


【解决方案1】:

只用一个词创建Example.py(如果您使用的是 Python2,请删除括号):

print ("Hello World!")

然后试试这个:

Option Explicit

Sub TestMe()

    Dim args As String
    args = "C:\somePath"
    Shell "cmd.exe /S /K" & args & "\Example.py", vbNormalFocus

End Sub

【讨论】:

  • PythonFind 是什么意思?
  • @EvanFleisig - 它只是一个目录。
  • 所以我真的在写 PythonFind?当你说“somePath”时,这是否意味着我正在寻找 python.exe 的路径?
  • @EvanFleisig - 查看更新。文件“Example.py”应该在C:\somePath 中。我的回答中没有任何内容与“python.exe”的路径有关。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 2016-07-09
相关资源
最近更新 更多