前言
本文介绍了如何使用python调用VBA宏的方法。
代码展示
打开excel
import os,sys
import win32com.client
def main():
global excel
#指定excel的路径
FilePath = r' D:\python\excel\Test.xls'
# 启动Excel应用程序
excel = win32com.client.Dispatch("Excel.Application")
# 设置Excel可见(False则Excel在后台运行)
excel.Visible = True
# 打开一个工作簿
wb = excel.Workbooks.Open(FilePath)
说明:
由win32com库控制excel,打开指定路径下的excel文件。
调用不带/带参数的宏
def ExcuteLoad(TxtfilePath: str):
excel.Run('Test.xls!ExcelTestTool.Func1')
macro = 'Test.xls!ExcelTestTool.Func2'
#para = " D:\\python\\excel\\abc.txt"
para = TxtfilePath
excel.Run(macro, para)
说明:
VBA宏1为无参数的宏Func()。VBA宏2为包含一个参数(TxtfilePath)的宏Func2(TxtfilePath)。
调用方法:使用excel.Run()函数,用单引号包含需要调用的宏,如下:
不带参数的宏’Test.xls!ExcelTestTool.Func1’:
Test.xls:excel的名字,其后需添加!符号连接其他内容。
ExcelTestTool:宏所属的模块名。
Func1:需要调用的宏的名字。
如需调用带参数的宏,则以,符号分隔,再添加对应参数。
如代码 excel.Run(macro, para)
总结
本文主要介绍了使用python调用VBA的两种,不带参数宏和带参数宏的调用方法。