【问题标题】:Use of pywin32 to open Word doc and read existing textbox variable使用pywin32打开Word doc并读取已有的文本框变量
【发布时间】: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 来操作它。但这完全是错误的。

【问题讨论】:

    标签: python ms-word pywin32


    【解决方案1】:

    ActiveDocument 尚未在您的代码中定义,但它已被定义为 Word 应用程序中 Document 类的一个实例(在您的代码示例中称为 word)。试试吧:

    question2 = word.ActiveDocument.Variables("txtQuestion02").Value 
    

    【讨论】:

    • 感谢您的尝试,但这并没有解决问题。有一组不同的错误:
    • 不客气。请编辑您的问题以显示您如何在启用宏的文档中设置“txtQuestion02”变量。
    猜你喜欢
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    相关资源
    最近更新 更多