VBA 将 OLE 转换为文本的宏导致 "Word has encountered a prob." 错误

VBA Macro to convert OLE to text results in "Word has encountered a prob." error

我正在使用以下 VBA 脚本来解析 word 文档并打开每个 OLE table 对象,复制 table,然后粘贴回 word 以便数据在 table 中可以搜索到。但是,在脚本运行一段时间后,Word 给我一条错误消息,指出 "Word has encountered a problem. You will not be able to undo this action once it is completed. Do you want to continue?" 单击“是”会导致文档停止响应并在未进行任何更改的情况下崩溃。选择否只会不断重新弹出相同的消息,我假设这会导致更改未保存。脚本有问题吗?我认为它以某种方式通过打开所有这些 OLE 对象来填满内存,但我认为激活 word 文档会将焦点从 OLE 对象转移,因此关闭嵌入的 table 以继续解析原始文档。我认为它可能与循环的每次迭代有关,尽管该消息不会显示在每个 OLE table 中。我不知道如何进一步调查导致此问题的原因。

    wrdActDoc.InlineShapes(lShapeCnt).OLEFormat.Activate
    Selection.Document.Select
    Selection.WholeStory
    Selection.Cut
    wrdActDoc.Activate
    Selection.PasteAndFormat (wdPasteDefault)

我用 Google 搜索了 "Word undo" 并找到了以下内容:

"be sure to save once in a while since the undo stack will be cleared"

因此,例如,在每处理 10 个对象后,将文档安全[保存为临时名称]。