2013-02-06 177 views
6

我的Excel工作簿包含與下面類似的VBA子目錄和宏;他們坐在Module1中。如何使用Python win32com調用Excel VBA函數和子集?

如何使用Python win32com模塊調用它們?

Public Sub setA1(ByVal s As String) 
    ThisWorkbook.ActiveSheet.Range("A1").Value = s 
End Sub 

Public Function getA1() As String 
    getA1 = ThisWorkbook.ActiveSheet.Range("A1").Value 
End Function 

非常感謝提前!

+1

這可以幫助你:http://stackoverflow.com/questions/345920/need-skeleton-code-to-call-excel-vba-從-的PythonWin – Eric

回答

9
import win32com.client 
xl=win32com.client.Dispatch("Excel.Application") 
xl.Workbooks.Open(Filename="c:\\temp\\book1.xls",ReadOnly=1) 
xl.Application.Run("setA1", '4') 
res = xl.Application.Run("getA1") 
print res 
xl = 0 

,因爲這只是簡單....