如何解决查看修订版集合时,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 举报,一经查实,本站将立刻删除。