从Python执行VBAscript

2024-04-26 18:47:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一些关于win32的帮助com.客户端. 我有代码工作到从Python创建宏和使用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)

Tags: 代码importaddasrstexcelsscnn
1条回答
网友
1楼 · 发布于 2024-04-26 18:47:18

您应该能够使用Excel的Application.Run方法:

xl.Run "Download_Standard_BOM"

编辑 如果需要引用ADO,则可以使用后期绑定,如下所示:

^{pr2}$

或者,使用早期绑定并添加对VBA工程的引用:

ss.VBProject.References.AddFromGuid "{2A75196C-D9EB-4129-B803-931327F72D5C}", 2, 8

相关问题 更多 >