Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 请求的对象不可用_Vba_Macos_Ms Word - Fatal编程技术网

Vba 请求的对象不可用

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

我试图在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
    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