为了工作,我正在尝试从Excel VBA宏运行Python脚本.
宏如下 -
Sub Plot()
Shell "C:\Users\maheshda\AppData\Local\Continuum\Anaconda3\python.exe C:\Users\maheshda\Tool\Tool\Main.py", vbNormalFocus
End Sub
Run Code Online (Sandbox Code Playgroud)
从命令行运行时脚本运行得很好,但不幸的是,因为我在Python脚本中使用相对文件路径(在某一点上,我从'../Input/'调用文件)脚本崩溃,因为当前工作目录不是C:\ Users\maheshda\Tool\Tool.
如何从宏中更改工作目录?谢谢!
这在VBA中是一项微不足道的任务,使用ChDir:
ChDir声明
更改当前目录或文件夹.
句法
ChDir路径必需的path参数是一个字符串表达式,用于标识哪个目录或文件夹成为新的默认目录或文件夹.路径可以包括驱动器.如果未指定驱动器,请
ChDir更改当前驱动器上的默认目录或文件夹.
由于您main.py居住C:\Users\maheshda\Tool\Tool\,请在调用Python脚本之前使用以下权限:
ChDir "C:\Users\maheshda\Tool\Tool"
Run Code Online (Sandbox Code Playgroud)
或者(因为它在驱动器C上):
ChDir "\Users\maheshda\Tool\Tool"
Run Code Online (Sandbox Code Playgroud)