当前位置:首页 >> 编程语言 >> 【python VS vba】(3) 在python直接调用vba脚本,viewpad10

【python VS vba】(3) 在python直接调用vba脚本,viewpad10

0evadmin 编程语言 2
文件名:【python VS vba】(3) 在python直接调用vba脚本,viewpad10 【python VS vba】(3) 在python直接调用vba脚本

目录

0 前言

1 VBA 内容

1.1  EXCEL这边VBA的内容

1.2 VBA的测试代码

2 python 调用

2.1 python 调用VBA的过程和结果

2.2 代码


0 前言

前面写了这么多,没想到,其实py是可以直接支持VBA的

python的模块import xlwings,可以让python直接调用EXCEL工作簿文件里的VBA脚本

具体步骤如下

1 VBA 内容 1.1  EXCEL这边VBA的内容

试验环境:C:\Users\Administrator\Desktop\1001.xlsm,这个文件里包含这样一个VBA程序

VBA程序:放在测试EXCEL文件的模块里,写一个函数fuction如下

1.2 VBA的测试代码 Function test1901(a, b)Debug.Print "1901"test1901 = a * bEnd Function

2 python 调用 2.1 python 调用VBA的过程和结果 需要 import xlwings利用 wb = app.books.open() 打开EXCEL文件

app = xw.App(visible=True,add_book=False) # 设置测试文件的路径 wb = app.books.open(r'C:\Users\Administrator\Desktop\1001.xlsm')

直接调用EXCEL内的函数,使用 wb.macro() 函数即可,函数本身需要在EXCEL文件内EXCEL文件可以不是打开状态

副作用就是,如果EXCEL文件本身处于打开状态,PY会再打开一个这个文件的副本--只读副本再就是,因为每次调用都需要执行打开EXCEL文件的操作,有点卡有点慢如果是同时打开多个EXCEL文件不敢想象

2.2 代码 import xlwings as xwapp = xw.App(visible=True,add_book=False)# 设置测试文件的路径wb = app.books.open(r'C:\Users\Administrator\Desktop\1001.xlsm')# 调用VBA脚本test1901 = wb.macro('test1901')test1901(4, 5)print(test1901(4, 5))

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接