我如何只允许自己查看电子表格,但其他人只能使用用户表单?

时间:2017-06-30 15:22:44

标签: excel vba

尝试弄清楚我是如何只看到工作簿的,其他人都可以根据网络用户名查看用户表单。

这是我到目前为止所得到的:

Private Sub Workbook_Open()

    Application.Visible = False
    UtilitiesReportingTool.Show

End Sub

1 个答案:

答案 0 :(得分:1)

您需要做一些事情来阻止用户查看您的工作表 - 这些内容可以通过一点点知识轻松解决。

  • 创建一个包含大文字的工作表"请启用宏"
  • 非常隐藏除宏启用表之外的所有工作表。
  • 在普通模块中创建这两个过程
Sub StartUp()

    Dim wrkSht As Worksheet

    If Environ("username") <> "CAES_MATT" Then
        Application.Visible = False
        UtitlitiesReportingTool.Show
    Else
        For Each wrkSht In ThisWorkbook.Worksheets
            wrkSht.Visible = xlSheetVisible
        Next wrkSht
    End If
End Sub

Sub ShutDown()

    Dim wrkSht As Worksheet

    For Each wrkSht In ThisWorkbook.Worksheets
        Select Case wrkSht.CodeName
            Case "Sheet1" 'This should really be shtMacroEnable or something.
                wrkSht.Visible = xlSheetVisible
            Case Else
                wrkSht.Visible = xlSheetVeryHidden
        End Select
    Next wrkSht

End Sub

Workbook_Open事件中添加以下代码:

Private Sub Workbook_Open()
    StartUp
End Sub 

在UserForm_Terminate事件中添加以下内容:

Private Sub UserForm_Terminate()
    Application.Visible = True
    ShutDown
End Sub  

当您只打开工作簿时,启用宏&#39;如果未启用宏,则可以看到工作表。 启用宏后,将显示表单,除非您在这种情况下取​​消隐藏所有工作表。

当表单关闭时,除了代号为Sheet1的工作表之外的所有内容都将被隐藏。

我可能错过了一些东西......回家。