【发布时间】:2014-11-21 00:07:40
【问题描述】:
我目前正在为一个与 python 2.7 和 excel 2013 交互的客户端开发一个工具,因此遇到了问题。
作为背景,我有一个想要作为可执行文件运行的 python 代码。客户端的计算机上没有 python,因此 exe 在没有 .py 的情况下运行至关重要。我已经使用 py2exe 将脚本从 .py 转换为 .exe。然后我试图用VBA调用那个.exe。当宏运行时,它看起来像是拉起命令提示符一秒钟,但它没有运行 .exe。但是,当我进入目录并双击 .exe 时,它运行良好并输出我想要的内容。
下面是我在 VBA 中的代码:
Dim folderPath As String
folderPath = Application.ActiveWorkbook.Path
ChDir folderPath
Dim stAppName As String
stAppName = folderPath & "\dist\MAT.exe"
Call Shell(stAppName, 1)
不确定我的 Shell 是否需要任何其他输入
任何帮助将不胜感激!
【问题讨论】:
-
您的脚本是否对当前工作目录做出任何假设,例如仅在工作目录与脚本目录相同时才会运行?
-
您是否能够启动其他可执行文件,例如
notepad.exe,使用Shell()? -
要进一步评论...您应该尝试打开命令窗口到
folderPath之外的目录并使用完全限定的路径启动您的程序...您几乎可以肯定有一个错误回溯 -
另外,你怎么知道它不运行exe? (这之间有什么明显的区别,比如说,它运行 exe,它立即退出,因为它没有找到任何可以工作的东西,或者它运行 exe,由于权限错误而引发未处理的异常并转储回溯在窗口关闭之前你看不到,等等?)
-
还有一件事:
folderPath & "\dist\MAT.exe"真的是程序的正确路径吗?dist目录是否保证与 .xls 文件位于同一目录中?
标签: python excel vba shell exe