使用Python从Excel电子表格读取VBA

2024-10-01 09:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python编写一个vbadiff程序。有没有Python库可以让我阅读Excel电子表格中包含的VBA?在


Tags: 程序vbaexcel电子表格vbadiff
2条回答

我创建了一个名为VbaDiff的应用程序。如果您提供两个Excel文件,它将比较每个文件中的VBA代码。您也可以从命令行运行它,或者使用API附带的版本(如果您想将它与您自己的程序集成)。在

更多信息请访问http://www.technicana.com/vbadiff-information.html

克里斯

这里有一些快速和肮脏的样板可以让你开始。它使用Excel COM对象(仅限Windows的解决方案):

from win32com.client import Dispatch
wbpath = 'C:\\example.xlsm'
xl = Dispatch("Excel.Application")
xl.Visible = 1
wb = xl.Workbooks.Open(wbpath)
vbcode = wb.VBProject.VBComponents(1).CodeModule
print vbcode.Lines(1, vbcode.CountOfLines)

这将打印我为本例录制的愚蠢宏:

^{pr2}$

注意,Lines和{}使用基于1的索引。VBComponents还支持按模块名索引。还要注意,Excel在路径中需要反斜杠。在

更深入地看皮尔逊的Programming The VBA Editor。(上面的例子是我从那里略过的拼凑而成的。)

相关问题 更多 >