【发布时间】:2018-07-04 12:30:40
【问题描述】:
感谢您查看我的问题。 我有一个 python 脚本,它正在我当前目录中编写一个新的 csv 文件。我已经使用 pyinstaller 将其设为 python.exe。我正在做的是,在单击按钮时使用 VBA 表单 excel 运行此 exe 文件。问题是在使用 VBA 运行 exe 后,我的 csv 保存在默认文档文件夹中,而不是我的 python.exe 所在的文件夹中。但是,如果我在没有 VBA 的情况下直接运行 python.exe,那么它会将 csv 保存在我的当前目录中。那么如何在使用 VBA 运行 python.exe 后将 csv 保存在当前目录中
这是我创建新 csv 文件的 python 代码:
csvfile = open("Mycsv" + '.csv', 'w')
cr = csv.writer(csvfile, dialect='excel')
我也尝试过使用:csvfile = open(os.getcwd() + "\Mycsv" + '.csv', 'w') 但没用。
这是我的 VBA 代码:
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
Dim errorCode As Integer
wsh.Run Chr(34) & ThisWorkbook.path & "\python.exe" & Chr(34), windowStyle, waitOnReturn
【问题讨论】:
-
我怀疑您需要将工作目录路径从 VBA 传递给
python.exe作为参数。 python程序无法知道您的excel文件在哪个目录。这是一个独立的过程。 -
你可以尝试在
wsh.CurrentDirectory = ...之前更改WScript的工作目录wsh.Run ...