从Python执行VBAscript
我需要一些关于win32com.client的帮助。 我有代码工作至于从Python创buildmacros,并使用Excel,但我想这个代码也运行vbascript。
谢谢你们所有的好评!
import pyodbc import win32com.client as win32 xl = win32.gencache.EnsureDispatch('Excel.Application') xl.Visible = True ss = xl.Workbooks.Add() sh = ss.ActiveSheet xlmodule = ss.VBProject.VBComponents.Add(1) # vbext_ct_StdModule sCode = '''Sub Download_Standard_BOM() 'Initializes variables Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim ConnectionString As String Dim StrQuery As String ConnectionString = "Provider=SQLOLEDB; Network Library=dbmssocn;Password=********;User ID=*******;Initial Catalog=**;Data Source=*************;" cnn.Open ConnectionString cnn.CommandTimeout = 900 StrQuery = "SELECT * FROM car_search WHERE shop_id = *******" rst.Open StrQuery, cnn Sheets(1).Range("A2").CopyFromRecordset rst End Sub''' xlmodule.CodeModule.AddFromString(sCode)
您应该能够使用Excel的Application.Run
方法:
xl.Run "Download_Standard_BOM"
编辑如果你需要参考ADO,那么你可以使用迟绑定,如下所示:
Dim cnn As Object 'ADODB.Connection Dim rst As Object 'ADODB.Recordset Set cnn = CreateObject("ADODB.Connection") Set rst = CreateObject("ADODB.Recordset")
或者,使用早期绑定并添加对VBA项目的引用:
ss.VBProject.References.AddFromGuid "{2A75196C-D9EB-4129-B803-931327F72D5C}", 2, 8