微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查看修订版集合时,VBA Word“ for each”循环变得无限

如何解决查看修订版集合时,VBA Word“ for each”循环变得无限

我的代码填充了Word文档中修订的作者列表:

Private Sub Get_Revisions_Authors()
    Dim r As Revision
    Set doc = ActiveDocument

    On Error Resume Next

    Dim Authors As New Collection
    For Each r In doc.content.Revisions
        Authors.Add r.Author,r.Author
    Next r

代码一直运行良好,直到被困在一个新文档上。在这种情况下,“ for-each”循环将一次又一次地无限次地选择一组五个修订版本。 将代码重写为如下所示即可解决问题:

Private Sub Get_Revisions_Authors()
    Set doc = ActiveDocument

    On Error Resume Next

    Dim Authors As New Collection
    Dim i As Long
    For i = 1 To doc.content.Revisions.Count
        Authors.Add doc.content.Revisions(i).Author,doc.content.Revisions(i).Author
    Next i

稍微重写一下代码即可删除“ On Error Resume Next”这一行,但仍然可以无限选择版本,而不会出现任何错误

Private Sub Get_Revisions_Authors()
Dim r As Revision
    Set doc = ActiveDocument
Dim bAdd As Boolean
Dim i As Long
    For Each r In doc.content.Revisions
        bAdd = True
        For i = 1 To Authors.Count
            If r.Author = Authors(i) Then
                bAdd = False
                Exit For
            End If
        Next i
        If bAdd Then
            Authors.Add r.Author,r.Author
        End If
    Next r

但是也许有人知道,如何找出第一版代码的问题所在?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。