簡體   English   中英

如何在Excel VBA中運行Python命令?

[英]How can I run Python commands from within Excel VBA?

我正在努力從Excel VBA(我熟悉)訪問Python。 這里有一個非常有用的答案(轉載如下)。 我非常仔細地遵循了這些步驟-無論我使用的是Python 3.3還是Python 2.7,都會發生相同的錯誤。

當我使用命令按鈕執行VBA代碼時,它在以下語句中失敗:PyScript.Language =“ python”,並出現錯誤消息“運行時錯誤380:無法創建用於指定語言的腳本引擎”

有什么想法嗎?

我嘗試使用的stackoverflow的答案如下。

請仔細執行以下步驟

  1. 轉到Activestate並獲取[ActivePython 2.5.7] [1] MSI安裝程序。
    我的2.6.x版出現DLL地獄問題
  2. 在Windows機器上安裝
  3. 安裝完成后,打開命令提示符並轉到

    C:\\ Python25 \\ LIB \\站點包\\ win32comext \\ axscript \\客戶端

  4. 執行\\> python pyscript.py您應該看到消息已注冊:Python

  5. 轉到MS Office Excel並打開工作表

  6. 轉到工具>宏> Visual Basic編輯器
  7. 添加對Microsoft腳本控件的引用![替代文本] [2]
  8. 添加一個新的用戶窗體。 在用戶窗體中添加一個命令按鈕
  9. 切換到代碼編輯器並插入以下代碼

    昏暗WithEvents PyScript作為MSScriptControl.ScriptControl

     Private Sub CommandButton1_Click() If PyScript Is Nothing Then Set PyScript = New MSScriptControl.ScriptControl PyScript.Language = "python" PyScript.AddObject "Sheet", Workbooks(1).Sheets(1) PyScript.AllowUI = True End If PyScript.ExecuteStatement "Sheet.cells(1,1).value='Hello'" End Sub 

執行。 享受並根據需要擴展

我正在運行32位Excel 2010和Anaconda Python 2.7。 我只是按照說明的步驟進行操作,只是為了簡化起見,我沒有創建用戶窗體或按鈕,而是從dim語句中刪除了“ WithEvents”,並將子控件設為Public(請參見下文)。 使用Alt-F8在工作表中運行宏,它可以正常工作。

我也在Excel 2013中對其進行了測試,沒有問題。

Public Sub TestPyScript()
Dim PyScript As MSScriptControl.ScriptControl
   If PyScript Is Nothing Then
       Set PyScript = New MSScriptControl.ScriptControl
       PyScript.Language = "python"
       PyScript.AddObject "Sheet", Workbooks(1).Sheets(1)
       PyScript.AllowUI = True
   End If
   PyScript.ExecuteStatement "Sheet.cells(1,1).value='Hello'"
End Sub

暫無
暫無

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

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