所有人!
我一直在使用Python中的win32com.client模块访问包含VBA宏的Excel文件的单元格。
代码中的语句 xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
一直在抛出一个错误: AttributeError: module 'win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x6' has no attribute 'MinorVersion'
是否有人遇到过类似的情况,如果有,可以对此采取什么补救措施?(我在GitHub上查看了win32com的源代码,但从中看不出什么意义。)
此属性错误的主要原因是COM服务器已从后期绑定(动态)转换为早期绑定(静态)。
有两种方法可以解决此问题:
使用动态模块强制代码以面向后期绑定的方式工作。示例使用:
使用对camelcase敏感的关键字进行面向早期绑定的方式。示例使用:
试一试
由于win32com.client.gencache.EnsureDispatch强制执行MakePy进程。
重命名
GenPy
文件夹应该可以。它出现在:
C:\Users\ _insert_username_ \AppData\Local\Temp\gen_py
重命名它将创建一个新的
Gen_py
文件夹,并允许您正确地分派Excel。如果我想确保python启动一个新的excel实例(例如访问xlsm文件中的宏),我使用
这样我就可以关闭应用程序,而不会损害已经打开的实例。
否则,我只能用
这对你有用吗?
相关问题 更多 >
编程相关推荐