Vba 请求的对象不可用
我试图在Mac Word文档上运行以下宏:Vba 请求的对象不可用,vba,macos,ms-word,Vba,Macos,Ms Word,我试图在Mac Word文档上运行以下宏: Sub AcceptDeletion() Dim oChange As Revision For Each oChange In ActiveDocument.Revisions With oChange If .Type = wdRevisionDelete Then .Accept End If End With
Sub AcceptDeletion()
Dim oChange As Revision
For Each oChange In ActiveDocument.Revisions
With oChange
If .Type = wdRevisionDelete Then
.Accept
End If
End With
Next oChange
End Sub
在这个问题上贴出:
它清除了几个已删除的修订,但在此处失败:
If .Type = wdRevisionDelete Then
…出现“请求的对象不可用”运行时错误(5852)
你知道怎么解决吗?我尝试添加isMissing/IsError或compare to Nothing作为一种保护措施,但没有成功。在@GSerg回答之后,我对脚本进行了如下修改,它可以正常工作:
Sub AcceptDeletions()
Dim oChange As Revision
For i = ActiveDocument.Revisions.Count To 1 Step -1
If ActiveDocument.Revisions(i).Type = wdRevisionDelete Then
ActiveDocument.Revisions(i).Accept
End If
Next i
End Sub
在枚举修订集时修改修订集,这从来都不是一个好主意。尝试先将修订保存到数组中,或从
revisions.Count使用For
枚举到1步骤-1
。