2014-11-21 48 views
0

我目前正在为一个客户端开发一个工具,该工具与python 2.7和excel 2013接口,并因此导致出现问题。在excel中调用Python脚本作为可执行文件

作为背景,我有一个我想作为可执行文件运行的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需要任何其他投入

不知道任何帮助,将不胜感激!

+1

您的脚本是否对当前工作目录做出任何假设,就像它只在工作目录与脚本目录相同时才运行? – abarnert 2014-11-21 00:12:22

+0

您是否能够启动其他可执行文件'notepad.exe',使用Shell()'? – mhawke 2014-11-21 00:12:40

+1

为了改进abarnerts评论...你应该尝试打开一个命令窗口到你的'folderPath'之外的一个目录并用完全合格的路径启动你的程序......你几乎肯定有一个错误追溯 – 2014-11-21 00:14:42

回答

-1

这是一个间接的回答更能帮助你找出什么可能是错误

在你的主文件

把你的程序在一个main功能(你不叫它主...你可以调用它不论)

def main(): 
    #do whatever 

那么当你,如果它的主要做

if __name__ == "__main__": 
    try: 
     main() 
    finally: 
     raw_input("Hit enter To Close...") 

这将摹运行保证您的窗口保持开放,即使存在未被捕获的错误

相关问题