确定受保护的视图选项在文档中是否处于活动状态

问题描述 投票:0回答:3

打开文档时,它表示要查看它,我必须启用受保护视图的编辑。

我希望在检测到该文件时关闭该文档,直到删除该Excel配置为止。

enter image description here

此过程是否有任何小的VBA功能?

错误91在变量对象运行时发生,未设置块]

If Application.ProtectedViewWindows.Count > 0 Then
    ActiveWorkbook.Close savechanges:=False
    Application.Quit
Else
End If

整个ActiveWorbook代码

Private Sub Workbook_Open()

    Dim hoja As Worksheet

    For Each hoja In ThisWorkbook.Worksheets
        hoja.Visible = xlSheetVisible
    Next hoja

    If Application.ProtectedViewWindows.Count > 0 Then
        ActiveWorkbook.Close savechanges:=False
        Application.Quit
    Else
    End If

    If Not VBATrusted() Then
        Application.Visible = False
        MsgBox "Aviso. Ya no puedes usar este archivo. Comunícate con el desarrollador Arq. Luis Eduardo Ramírez Aguayo [email protected] Cel. +(52) 415.151.102"
        ActiveWorkbook.Close savechanges:=False
        Application.Quit
    End If

    Sheets("Hoja1").Visible = xlVeryHidden

    '----------------------------------------------------------------'

    Application.Visible = False

    UserForm1.Show

End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim hoja As Worksheet

    Sheets("Hoja1").Visible = xlSheetVisible

    For Each hoja In ThisWorkbook.Worksheets
        If hoja.Name <> "Hoja1" Then
            hoja.Visible = xlSheetVeryHidden
        End If
    Next hoja

    '----------------------------------------------------------------'

    Sheets("HojaEscondida").Range("A4") = "admin"
    Sheets("HojaEscondida").Range("A4") = "admin"

    Application.DisplayAlerts = False

End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI Then
        MsgBox "NO SE PUEDE GUARDAR COMO." & Chr(10) _
          & "Guarde el original, usando el icono guardar," & Chr(10) _
          & "o simplemente use la x de cerrar, y se guardará" & Chr(10) _
          & "automáticamente en el lugar correcto", vbCritical
        Cancel = True
    End If

End Sub


Function VBATrusted() As Boolean
    On Error Resume Next
    VBATrusted = (Application.VBE.VBProjects.Count) > 0
End Function
excel vba protected
3个回答
0
投票

尝试这个。

  1. 单击文件>选项。
  2. 单击信任中心>信任中心设置>受保护的视图。
  3. 取消选中“启用受保护的视图以查看来自互联网的文件。”>
  4. 希望有帮助


0
投票

Protected View是一项安全功能,它禁用宏和文件编辑。如果您可以在受保护的视图中运行VBA代码,那将是一个安全漏洞。因此,您不能在受保护的视图中运行任何代码。


0
投票

如@Pᴇʜ所说,您只能通过隐藏所有工作表来解决此问题,除非其中一个工作表说必须禁用受保护的视图并在启用宏时取消隐藏工作表。但是,您应该在Workbook_BeforeSave处执行此操作,因为有些人将其保存在中间,但最后不保存,因此下次打开工作表时不会将其隐藏。

© www.soinside.com 2019 - 2024. All rights reserved.