【问题描述】python如何运行Excel文件里的vba程序?
【小千解答】
vba示例程序:
Sub xqoffice()
Range("B2").Value = Now
MsgBox "Hello, qian!"
End Sub思路1:借助pywin32模块
安装:
pip install pywin32
代码:
from win32com.client import Dispatch
xlApp = Dispatch('Excel.Application')
xlApp.Visible = True
xlBook = xlApp.Workbooks.Open('D:/msg.xlsm',False)
xlApp.Application.Run('xqoffice')
xlBook.Close(True)
xlApp.quit()
print('Done!')效果:

思路2:借助xlwings模块
安装:
pip install xlwings
代码:
import xlwings as xw
xlApp = xw.App(visible=True, add_book=False)
xlBook = xlApp.books.open('D:/msg.xlsm', False)
xlBook.macro('xqoffice')()
xlBook.save()
xlBook.close()
xlApp.quit()
print('Done!')效果:


【参考资料】
PyWin32.chm:python安装路径\Lib\site-packages\PyWin32.chm