2012-05-01 37 views
3

我有一個有趣的問題,我碰到的,我可以輕鬆地進軍從VB在Excel實例Python代碼,如下所述:Calling python script from excel/vba的Python在VB .NET中使用相比,Excel的

然而,當我在窗體中模仿visual studio中完全相同的代碼結構,pyscript.language =「python」行失敗。有誰知道如果MSScriptControl.ScriptControl可以在VB.Net中使用來控制Python,就像你可以在Excel中一樣?這比爲我的python腳本設置co​​m對象要容易得多。

實施例的代碼(需要添加Microsoft腳本控制1.0和Excel對象庫):

Imports Microsoft.Office.Interop 

Public Class Form1 
    Dim WithEvents PyScript As MSScriptControl.ScriptControl 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim xlApp As New Excel.Application 
     xlApp.Visible = True 
     Dim xlwbook As Excel.Workbook = xlApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet) 
     Dim xlSheet As Excel.Worksheet = CType(xlwbook.Worksheets(1), Excel.Worksheet) 

     If PyScript Is Nothing Then 
      PyScript = New MSScriptControl.ScriptControl 
      PyScript.Language = "python" 
      PyScript.AddObject("Sheet", xlSheet) 
      PyScript.AllowUI = True 
     End If 
     PyScript.ExecuteStatement("Sheet.cells(1,1).value='Hello'") 


    End Sub 
End Class 
+0

您收到的錯誤消息的確切用詞是什麼? –

+0

以下是代碼報告:http://pastebin.com/G4pVDtNL – Mulligstein

+0

OK。錯誤消息是*「無法創建指定語言的腳本引擎。」* –

回答

0

根據該http://msdn.microsoft.com/en-us/library/aa227633(v=vs.60)的ScriptControl的是VS6項,這意味着它可以不與更高版本完全兼容。由於兩種環境(Windows窗體和Excel)在基本方式上有所不同,因此在上下文中也存在一個問題,因此在另一個環境中可能存在的問題並不總是可行的。

此外,它將是非常值得仔細檢查給定示例中的前四個步驟,並確保您可以從Excel中執行此操作。