我正在尝试使用 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 作业分级/Grade MS Word - Doc version.py”,第 18 行,有问题 2 = ActiveDocument.Variables(“txtQuestion02”)。值 NameError:未定义名称“ActiveDocument”
伯尼建议后的最新错误: Traceback(最近一次通话最后一次):文件“C:/Users/Robert/SkyDrive/Programming/SAP Assignment grading/Grade MS Word - Doc version.py”,第 18 行,in question2 = word. ActiveDocument.Variables("txtQuestion02").Value
文件“C:\Python27\lib\site-packages\win32com\client__init__.py”,第 463 行,在getattr return self. 应用类型(*args)
文件“C:\Python27\lib\site-packages\win32com\client__init__.py”,第 456 行,在ApplyTypes 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 结束
在 Word 中设置 txtQuestion02 的方式(文本框的 VBA 代码):
`
私有子 txtQuestion02_Change()
Me.txtAnswer02.Value = Me.txtQuestion02.Value
结束子`
当我查看局部变量时,该变量确实显示它具有正确的值,并且只要我更改文本框中的内容,它就会立即更改。txtQuestion02.value 似乎确实在做它应该做的事情。我似乎无法使用 pywin32 访问。现在我正走上一条糟糕的打印文本的道路,我可以用 python 操作它。但这完全是错误的。