如何用vba判断打开的文件是否处于受保护视图?

当用vba代码遍历文件时,如果文件是从互联网上下载的,会弹出提示以受保护视图打开,无法继续编辑,此时代码会报错。

vba中ProtectedViewWindow对象是与受保护的视图相关的对象。

在vba中可以使用Application对象的ActiveProtectedViewWindow属性返回ProtectedViewWindow对象。

当返回了ProtectedViewWindow对象以后,如果要启用编辑,可以使用ProtectedViewWindow对象的Edit方法返回对应的Workbook对象。

以下是一个判断当前的excel是否以受保护的视图打开,如果是,则返回对应的工作簿对象。

Sub QQ1722187970()
    Dim oWB As Workbook
    Dim oPV As ProtectedViewWindow
    Set oPV = Excel.Application.ActiveProtectedViewWindow
    If oPV Is Nothing Then
    Else
        '如果是受保护视图,则允许编辑
        With oPV
            Set oWB = .Edit
        End With
    End If
End Sub
       

发表评论