我在word 2013中有一个宏,它删除空白并调整页面宽度大小,以确保表适合。目前,为了对文档进行这些更改,用户需要首先运行宏,并且只有在运行之后,当他们打印文档时,更改才会得到保证。
我想自动化运行宏的部分。
这是为了形成word doc,以确保文档中的表与页面相匹配。
import os
import time
import win32com.client
from docx import Document
macro_to_run = 'PostProcess'
document =
wordapp.Documents.Open('C:\\Users\\sarvesa\\Downloads\\test_xrd.doc')
wordapp.run(document, macro_to_run)
document.save
document.close追溯(最近一次调用):文件"filename_change.py",第12行,wordapp.run(文档,macro_to_run)文件第516行,getattr = self.oleobj.Invoke(retEntry.dispid,0,invoke_type,1) pywintypes.com_error:(-2147352567,‘异常发生。’0,'Microsoft‘,"'Run‘不是一个属性。“,'wdmain11.chm',25342,-2146822426),无)
发布于 2019-10-21 09:35:50
提供的“word the”是word的实例,如下所示:
wordapp = win32com.client.DispatchEx("Word.application")然后有两个问题: 1)您缺少了"Application“2)这些方法都是从VBA继承的,这意味着您需要使用该语法。这包括套管!我也不得不搜索大量这些信息,并将其编译成一个工作脚本。我也推荐阅读一些VBA教程。
尝试:
wordapp.Application.Run(macroName)编辑:你的"macro_to_run“也可能是不够的。您不仅需要指定模块名称,还需要指定要运行的Sub :类似于"Normal.Module1.SubName"
https://stackoverflow.com/questions/56269818
复制相似问题