首页 > 解决方案 > 尝试从 vba 调用 Python 脚本,但它返回的是数字系列而不是所需的输出

问题描述

我一直在尝试从 vba 调用 Python 脚本,但它返回的是一个数字系列而不是所需的输出。

这是python脚本:

def hello():
    df = pd.DataFrame(data=[2,2])
    df.to_excel("hello_output.xlsx")
    return "Hello"
hello()

我试图从以下 stackoverflow 帖子和 YT 视频中实现 vba 脚本:
如何在 excel vba 上调用 python 脚本?
从 VBA 运行并执行 python 脚本 https://www.youtube.com/watch?v=rlHcrAb2_fs&t=1s https://www.youtube.com/watch?v=Z4SC53VZh-w

这是我的 VBA 脚本(我尝试过使用一个和两个 bakcslashes):

Sub RunPythonScript()
    PythonExe = """C:\\Users\\username\\anaconda3\\python.exe"""
    PythonScript = """C:\\Users\\username\\all scripts\\hello.py"""

    retval = Shell(PythonExe & " " & PythonScript)

    Worksheets("Sheet1").Range("D15").Value = retval
    MsgBox (retval)

End Sub()

未创建文件“hello_output.xlsx”。
MsgBox 输出一个数字系列(可能是某种进程 ID)而不是字符串“Hello”。

为了您的信息,我确实安装了两个 python 解释器,并且我尝试为它们提供文件路径。anaconda python解释器手动打开时出现以下错误信息:

"此 Python 解释器处于 conda 环境中,但该环境尚未激活。库可能无法加载。要激活此环境,请参阅https://conda.io/activation "

我已经在 Spyder 中编写了我的 python 代码。

任何有关如何解决此问题的建议将不胜感激。

标签: pythonexcelvbashellanaconda3

解决方案


推荐阅读