删除Word字段VBA在Word 2013中不起作用,在Word 2010中起作用
我有一个VBA宏,它是从Excel运行的,用于从Word文档导入一些信息。在开始解析之前,我希望去掉目录和其他字段。以下代码(至少剥离)适用于Office 2010,但不适用于Office 2013。我收到一条“对象字段中的方法删除失败”eror消息,但我不明白为什么 谢谢你的提示 博删除Word字段VBA在Word 2013中不起作用,在Word 2010中起作用,vba,excel,ms-word,Vba,Excel,Ms Word,我有一个VBA宏,它是从Excel运行的,用于从Word文档导入一些信息。在开始解析之前,我希望去掉目录和其他字段。以下代码(至少剥离)适用于Office 2010,但不适用于Office 2013。我收到一条“对象字段中的方法删除失败”eror消息,但我不明白为什么 谢谢你的提示 博 必须尝试按索引删除它们吗 For i = 1 to wdDoc.ActiveWindow.Document.Fields.Count wdDoc.ActiveWindow.Document.Fields.
必须尝试按索引删除它们吗
For i = 1 to wdDoc.ActiveWindow.Document.Fields.Count
wdDoc.ActiveWindow.Document.Fields.Item(i).Delete
Next i
我有时发现,在这种情况下,在循环中删除活动对象fld
并不总是成功的,VBA错误消息也不太具体。另外,似乎SEQ(序列字段)和XE(索引字段)不能取消链接
ed,这对我来说意味着删除
也可能失败,尽管Microsoft没有指定这种情况
编辑
基于从上到下的评论循环
For i = wdDoc.ActiveWindow.Document.Fields.Count To 1 Step -1
wdDoc.ActiveWindow.Document.Fields.Item(i).Delete
Next i
删除时,应从集合中的最后一项转到第一项。请看下面的答案+我的评论。谢谢你的建议,不幸的是,我得到了同样的错误。然而,我确实想出了一个解决办法:我使用了Unlink而不是Delete,这对我来说是可以的。我想去掉这些字段的原因是,当我试图逐段处理文档时遇到了问题,即逐段循环遍历文档。字段在某种程度上干扰了处理,但通过取消链接将其转换为文本就可以了
For i = wdDoc.ActiveWindow.Document.Fields.Count To 1 Step -1
wdDoc.ActiveWindow.Document.Fields.Item(i).Delete
Next i