我使用pywin32将VBA命令发送到Word和Excel,代码是用PyCharm编写的。
问题在于pywin32在VBA对象周围没有永久包装,而是使用makepy
来生成必要的模块。这会带来一些不便。
def my_func (workbook: Workbook)
isinstance(workbook, Workbook)
例如,工作簿对象类型为:
<class 'win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9.Workbook.Workbook'>
我认为00020813-0000-0000-C000-000000000046x0x1x9是注册表中VBA类型库的键。
生成的包装器位于...\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x9_Workbook.py
因此要在注释,类型检查,参数提示等中使用工作簿类型。需要手动定义,例如:
Workbook = win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9.Workbook.Workbook
但是请考虑:
是否可以使用生成的python代码自动生成VBA类型库包装器,这样的工具/库是否存在?