1

当字段嵌套时,就会出现问题。

foreach (Word.Field field in this.Application.ActiveDocument.Fields)
        {
            field.Update();
            text = field.Result.Text;

        }

上面的代码不起作用。

该进程开始,但以无限循环或挂起系统的其他进程结束。

考虑一下,我可以推测,当您更新字段时,它可能会对字段集合产生影响——因此,循环会失败。

有没有人对此有任何想法?

PS 我知道有一个 Document.UpdateFields() 方法来更新所有字段。但是,我不能使用它并且只需要更新特定的字段类型是有原因的。

我很抱歉!我将举一个嵌套字段的示例,但在发送任何人(Jack)之前尝试进行更多测试。

我等了又等,等了两三分钟后,它完成了。在最后一个字段之后,它因以下消息而崩溃:

对象已被删除。

错误是从循环内的以下行生成的:

字符串文本 = field.Code.Text;

该模板正在未找到的合并字段上进行测试,因为我在没有数据库连接的情况下进行测试。奇怪但可以解释的是,它遍历了所有字段,然后在一天结束时,非常 OUTER IF 字段的结果是“错误!未找到参考源”。但我仍然不明白为什么会发生这种情况。

我也不明白为什么循环需要 3 分钟,而对 document.Fields.Update() 的调用将在大约 1 秒内执行相同的操作并且不会导致上述错误。

再次,我很抱歉。我从来没有考虑过在循环中更新会比调用 doc.fields.update() 慢得多。

4

0 回答 0