【发布时间】:2015-04-23 19:05:31
【问题描述】:
我正在尝试运行一个 VBA 模块,该模块使用 shell 脚本运行 ipython 笔记本(使用 runipy),然后再继续执行其他操作,但我的 ipython 笔记本脚本需要输入,这些输入是使用环境变量设置的。
这是我目前拥有的 VBA:
rundate = Range("b1").Value
shellScript = "runipy C:\argstest.ipynb"
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
Set wshSystemEnv = wsh.Environment("SYSTEM")
wshSystemEnv("CURRWK") = rundate
如果我然后运行:
MsgBox (wshSystemEnv("CURRWK"))
结果正确:
2015-04-17
但是,如果我继续执行我的 shellscript,它就无法识别这个变量
Set WshShellExec = wsh.exec(shellScript)
Range("a1").Value = WshShellExec.StdErr.ReadAll
告诉我,当 python 运行时,它会出现一个关键错误:
KeyError: 'CURRWK'
如果我删除 VBA 并直接从命令行运行它,我会这样做:
set CURRWK=2015-04-17
runipy C:\Python27\Programs\ipython\ACT\argstest.ipynb
如何获取在 VBA 中创建的 shell 以创建新的环境变量,以便 python 脚本在执行时可以看到它?
谢谢!
【问题讨论】: