我想用(最好)Python 编写一个 VBA 差异程序。是否有 Python 库可以让我读取 Excel 电子表格中包含的 VBA?
问问题
3588 次
2 回答
6
这是一些快速而肮脏的样板,可以帮助您入门。它使用 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)
这将打印我为此示例记录的愚蠢宏:
Sub silly_macro()
'
' silly_macro Macro
'
'
Range("B2").Select
End Sub
请注意Lines
并VBComponents
使用基于 1 的索引。 VBComponents
还支持按模块名称索引。另请注意,Excel 需要在路径中使用反斜杠。
要深入了解,请参阅 Pearson 的Programming The VBA Editor。(上面的例子是我从那里略读的拼凑而成的。)
于 2012-09-05T19:09:59.483 回答
0
我创建了一个名为 VbaDiff 的应用程序。如果您提供两个 Excel 文件,它将比较每个文件中的 VBA 代码。您也可以从命令行运行它,或者如果您想将它与您自己的程序集成,请使用 API 附带的版本。
您可以在http://www.technicana.com/vbadiff-information.html找到更多信息
克里斯
于 2012-10-05T10:43:59.693 回答