首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有人尝试从Python运行嵌入到microsoft word文档中的宏?

是否有人尝试从Python运行嵌入到microsoft word文档中的宏?
EN

Stack Overflow用户
提问于 2019-05-23 07:08:59
回答 1查看 733关注 0票数 0

我在word 2013中有一个宏,它删除空白并调整页面宽度大小,以确保表适合。目前,为了对文档进行这些更改,用户需要首先运行宏,并且只有在运行之后,当他们打印文档时,更改才会得到保证。

我想自动化运行宏的部分。

这是为了形成word doc,以确保文档中的表与页面相匹配。

代码语言:javascript
复制
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),无)

EN

回答 1

Stack Overflow用户

发布于 2019-10-21 09:35:50

提供的“word the”是word的实例,如下所示:

代码语言:javascript
复制
wordapp = win32com.client.DispatchEx("Word.application")

然后有两个问题: 1)您缺少了"Application“2)这些方法都是从VBA继承的,这意味着您需要使用该语法。这包括套管!我也不得不搜索大量这些信息,并将其编译成一个工作脚本。我也推荐阅读一些VBA教程。

尝试:

代码语言:javascript
复制
wordapp.Application.Run(macroName)

编辑:你的"macro_to_run“也可能是不够的。您不仅需要指定模块名称,还需要指定要运行的Sub :类似于"Normal.Module1.SubName"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56269818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档