【问题描述】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