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