利用xlwings直接调用Excel的xlsm文件中的宏vba

本文介绍了如何使用xlwings库在Python中调用Excel xlsm文件中的宏VBA。强调了宏的参数要求、Python调用的便捷性以及相比win32com的优势。推荐在录制复杂宏后通过xlwings直接调用,同时提到了文件格式转换和数据处理时使用pandas库的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例如某个xlsm文件中的模块1中有宏


Sub 宏1()
'
' 宏1 宏
'

'
    Range("G3").Select
    ActiveCell.FormulaR1C1 = "你好"
    Range("G9").Select
End Sub

那么怎么通过xlwings调用这宏呢:

首先要安装winPython或者其他Python,pip install xlwings,winPython默认安装xlwings。

然后

import xlwings as xw
vba_book=xw.Book(r"test.xlsm")
marco1=vba_book.macro("模块1.宏1")
marco1()

注意,如果宏里面的函数 function或者过程sub有输入参数或输出参数,那么这个宏一定要写在模块1当中。

例如模块1中的函数

Function MySum(x As Double, y As Double) As Double
    MySum = x + y
End Function

Sub ShowMsgBox(msg As String)
    MsgBox msg
End Sub

 那么Python中的调用函数就是

import xlwings as xw
vba_book = xw.Book("xl/vba.xlsm")
mysum = vba_book.macro("Module1.MySum&
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值