2014-11-21 85 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...") 

這將摹運行保證您的窗口保持開放,即使存在未被捕獲的錯誤

相關問題