python xlwings 调用vba以及使用windowapi调用vba脚本


python xlwings 调用vba以及使用windowapi调用vba脚本

使用win32com调用vba脚本程序如下:

import win32com.client
filepathb = r"C:\Users\user\Desktop\Excel VBA快速工具\拆分本工作簿\拆分本工作簿.xlsm"
xls = win32com.client.Dispatch("Excel.Application")
xls.Workbooks.Open(filepathb)
xls.Application.Run("拆分本工作簿")
xls.Application.Quit()
 
但是需要持续写入数据的时候使用win32com有不是特别方便。
使用xlwings库调用vba脚本
 
而且在一个持续写入excel文本中,偏向会去使用xlwings库调用相关的库
 
而且xlwings于pywin32库的结合也是较好的。调用不同层级的api如sheet、workbook、application上的。
 
问题时,在利用api调用vba脚本的时候需要激活在宏所在的工作簿。
import xlwings as xw filepath=r"C:\Users\user\Desktop\Excel VBA快速工具\拆分本工作簿\拆分本工作簿.xlsm" app = xw.App(visible=True, add_book=False) wb = app.books.open(filepath) wb.activate() #工作簿需要被激活后才能调用vba脚本。
wb.api.Application.Run("拆分本工作簿") wb.save() wb.close() app.quit() app.kill()

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM