Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除Word字段VBA在Word 2013中不起作用,在Word 2010中起作用_Vba_Excel_Ms Word - Fatal编程技术网

删除Word字段VBA在Word 2013中不起作用,在Word 2010中起作用

删除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.

我有一个VBA宏,它是从Excel运行的,用于从Word文档导入一些信息。在开始解析之前,我希望去掉目录和其他字段。以下代码(至少剥离)适用于Office 2010,但不适用于Office 2013。我收到一条“对象字段中的方法删除失败”eror消息,但我不明白为什么

谢谢你的提示


必须尝试按索引删除它们吗

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