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



试图根据网络用户名计算出只有我可以看到工作簿而其他人可以看到用户表单。

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

Private Sub Workbook_Open()
    Application.Visible = False
    UtilitiesReportingTool.Show
End Sub

您需要一些东西来阻止您的用户查看您的工作表 - 这些很容易通过一点知识来破解。

  • 创建一个带有大文本的工作表,上面写着"请启用宏">
  • 非常隐藏除宏启用表以外的所有工作表。
  • 在普通模块中创建这两个过程
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  

当您打开工作簿时,如果未启用宏,则只有"启用宏"工作表可见。 启用宏后,将显示窗体,除非是您,在这种情况下,所有工作表都将取消隐藏。

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

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

相关内容

最新更新