我想用(最好)Python 编写一个 VBA 差异程序。是否有 Python 库可以让我读取 Excel 电子表格中包含的 VBA?
最佳答案
这里有一些快速但不完善的样板文件可以帮助您入门。它使用 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 . (上面的例子是我从那里浏览的内容拼凑而成的。)
关于python - 使用 Python 从 Excel 电子表格中读取 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12287677/