2013-02-06 12 views
6

La cartella di lavoro di Excel contiene sottotitoli VBA e macro simili a quelli riportati di seguito; si siedono in Module1.Come chiamare funzioni e sottosistemi VBA di Excel usando Python win32com?

Come chiamarli utilizzando il modulo 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 

Molte grazie in anticipo!

+1

Questo potrebbe aiutare: http://stackoverflow.com/questions/345920/need-skeleton-code-to-call-excel-vba- da-PythonWin – Eric

risposta

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 

Altrettanto semplice come questo ....