【发布时间】:2013-01-31 18:27:20
【问题描述】:
我正在尝试使用 pywin32 打开 Word 文档并从一些文本框中复制值并打印出来。代码和错误如下。非常感谢任何帮助。对于这个可能很简单的问题,我已经看了很久很久都没有答案。
import win32com.client as win32
word = win32.gencache.EnsureDispatch('Word.Application')
word.Visible = 0
doc = word.Documents.Open('C:/testdoc.docm')
question2 = ActiveDocument.Variables("txtQuestion02").Value
print question2
Traceback(最近一次调用最后一次): 文件“C:/Users/rjudge/SkyDrive/Programming/SAP Assignment grading/Grade MS Word - Doc version.py”,第 18 行,在 question2 = ActiveDocument.Variables("txtQuestion02").Value NameError: 名称“ActiveDocument”未定义
伯尼建议后的最新错误: 回溯(最近一次通话最后): 文件“C:/Users/Robert/SkyDrive/Programming/SAP Assignment grading/Grade MS Word - Doc version.py”,第 18 行,在 question2 = word.ActiveDocument.Variables("txtQuestion02").Value
getattr 中的文件“C:\Python27\lib\site-packages\win32com\client__init__.py”,第 463 行 return self.ApplyTypes(*args)
ApplyTypes 中的文件“C:\Python27\lib\site-packages\win32com\client__init__.py”,第 456 行 self.oleobj.InvokeTypes(dispid, 0, wFlags, retType, argTypes, *args), pywintypes.com_error: (-2147352567, '发生异常。', (0, u'Microsoft Word', u'对象已被删除。', u'C:\Program Files (x86)\Microsoft Office\Office12\1033\ WDMAIN11.CHM', 25305, -2146822463), 无)
进程以退出代码 1 结束
txtQuestion02在Word中的设置方式(文本框的VBA代码):
`
私有子 txtQuestion02_Change()
Me.txtAnswer02.Value = Me.txtQuestion02.Value
结束子 `
当我查看局部变量时,该变量确实显示它具有正确的值,并且只要我更改文本框中的内容,它就会立即更改。 txtQuestion02.value 似乎确实在做它应该做的事情。我似乎无法使用 pywin32 访问。现在我正走上一条糟糕的打印文本的道路,我可以用 python 来操作它。但这完全是错误的。
【问题讨论】: