簡體   English   中英

從 VBA 運行 Python 腳本沒有任何反應,但是當我從 python.exe 運行它時,它起作用了

[英]Running Python script from VBA nothing happens, but when I run it from python.exe, it works

我從 VBA 運行 Python 腳本。結果應該是 Exel 文件中的一個填充單元格。 我嘗試使用這個 VBA 命令:

RetVal = Shell("""C:\Python27\python.exe""" & " " & """M:\Analysis\PythonScripts\MySript.py""", vbHide)

但結果什么也沒有發生。 但是,如果我直接從 python.exe 運行這個 scipt,它工作正常。 Excel 文件中的單元格填充了一個值。 這讓我得出結論,VBA 代碼有問題。

更新

Python 腳本片段:

ExcelApp = win32com.client.GetActiveObject("Excel.Application")
wb = ExcelApp.Workbooks('File1.xlsm')
sheet = wb.Worksheets(u'Result')
cell = sheet.Range('B1')
cell.Value = result

我認為,如果您從 File1.xlsm 運行 VBA,這會導致 VBA 和 Python 之間發生沖突。例如文件共享違規/權限被拒絕,因為現在 VBA 和 Python 正試圖同時控制該文件。 嘗試從另一個不是目標文件的文件運行 VBA,讓我們看看結果如何。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM