我有以下代码构建一个包含轨道更改(标记)的MS字页字符串。在循环结束时,我退出最后一页包含曲目更改的位置。
然而,如果最后一页上没有曲目更改,我会陷入循环(没有双关语)。在运行期间,我得到确认框'你想要开始文档的开头'并循环
如何添加'exit do',以便找到最后一个曲目更改(不在最后一页),退出do语句?
Sub finaltest()
Dim CurPage As Integer
Dim totalPages As Integer
Dim Pages As String
'declare variables
Pages = ""
'total page count
ActiveDocument.Repaginate
totalPages = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
'get us home
Selection.HomeKey Unit:=wdStory
Do
'find next change
WordBasic.NextChangeOrComment
'get current page
CurPage = Selection.Information(wdActiveEndAdjustedPageNumber)
Pages = Pages & ", " & CurPage
'<exit loop if there is no more track changes and not at last page>
Loop Until CurPage = totalPages
Pages = Right(Pages, Len(Pages) - 2)
MsgBox Pages
End Sub
答案 0 :(得分:0)
在使用WordBasic.NextChangeOrComment
指令时,您确实需要跟踪哪些修订元素有点不清楚。
但是,假设您需要跟踪修订而不是评论,您可以在您放入Sub的评论之后插入下面的代码:
'<exit loop if there is no more track changes and not at last page>
With ActiveDocument.Content.Revisions
If Selection.Range = .Item(.Count).Range Then
'MsgBox "Last one" - for test only
Exit Do
End If
End With
如果您需要跟踪评论,则需要创建与修订项目类似的解决方案(Comments collection
不包括Revisions collection
,反之亦然)。