到目前为止,我能够使用Excel VBA通过以下方式启动python脚本:
Sub ratesmarkup()
Ratespath = "python " & """S:\Market Risk\Middle Office\Corporate Treasury\Politique Investissement\Python\JTD\Rates Markup.py"""
Cmd_Line = Shell("cmd.exe /S /K" & Ratespath & "&" & "exit", vbHide)
End Sub
到现在为止,它一直运作得很好。我开始使用Anaconda测试一个新脚本,我的新脚本使用了我通过Anaconda导入的pyxlsb模块,因为我无法将该模块与常规PyCharm一起使用。长话短说,我想知道如何修改此脚本以启动Anaconda提示符,而不是常规的cmd.exe命令行
当我将其启动到Anaconda提示符时,它会工作:
python "S:\Market Risk\Middle Office\Corporate Treasury\Politique Investissement\Python\PCBONDS.py"
但是,当我尝试从常规命令行启动它时,终端中会出现以下错误:
"ValueError: Unknown engine: pyxlsb"
然而,当我尝试安装上述pyxlsb模块时(尽管据我所知,我已经有了它),它会说:
Requirement already satisfied: pyxlsb in c:\python\python-3.5.1\lib\site-packages (1.0.6)
Anaconda上的python是3.7,而常规的python是3.5。我以以下方式使用pyxlsb引擎:
pandas.read_excel(engine = "pyxlsb")
如果我理解的话,它需要一个特定版本的Python,这是通过Anaconda提供给我的。这是在工作,所以我不能只是安装一个独立Python的不同版本,就像这样。那么,通过修改我目前已经存在的sub,基本上有没有可能通过VBA启动基于anaconda的python脚本呢?找不到能直接回答这个问题的答案
谢谢
您需要首先启动虚拟环境。第二步是在虚拟环境中运行脚本。创建一个批处理文件,包括您需要执行的所有步骤,并通过VB脚本执行批处理文件。 假设您的windows用户是
TMF
,您的虚拟环境是myenv
批处理文件
给那些喜欢结论的人哈哈
我的.bat文件最终如下所示:
其中%1%包含我将通过VBA脚本传递的变量值,在本例中为当前使用PC的用户的用户名
VBA脚本如下所示:
其中User=Environ(“UserName”)允许我动态获取用户的用户名
我想我会分享,因为它可以帮助别人
相关问题 更多 >
编程相关推荐