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

标签 python excel vba

我想用(最好)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

请注意,LinesVBComponents 使用从 1 开始的索引。 VBComponents 还支持按模块名称进行索引。另请注意,Excel 要求在路径中使用反斜杠。

要深入了解 Pearson 的 Programming The VBA Editor . (上面的例子是我从那里浏览的内容拼凑而成的。)

关于python - 使用 Python 从 Excel 电子表格中读取 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12287677/

相关文章:

python - 在 Python 中获取集合的子集

vba - 查找日期是否存在于单元格范围中(Excel VBA)

vba - 存储#VALUE! #NUM! #引用!在变量中

xml - 使用 VBA 将 Access 表导出为 XML

vba - 如何更改 Excel VBA 项目中的全局变量名称?

python - Keras CNN 训练准确率很好但测试准确率很低

python - 如何通过 C API 在 Python 类中创建静态变量?

python3.8在mac上尝试git commit到bitbucket时没有这样的文件或目录

java - jxl - MS Excel 兼容性错误

python - Google 文档列表 API 已弃用 : how can one manipulate spreadsheets in Python now?