excel - 访问密码阻止表 - Excel
问题描述
下面的代码通过隐藏工作表来限制访问,除非输入密码。如果输入正确,则可以从各个选项卡中查看工作表。但是,它不会让我查看然后编辑工作表。
可以对此进行调整以允许用户输入密码,然后查看和编辑工作表吗?
Private Sub Workbook_Open()
Sheets("Sheet1").Visible = xlSheetHidden
End Sub
Public ViewAccess As Boolean 'In restricted sheet's activate event
Private Sub Worksheet_Activate()
If ViewAccess = False Then
Me.Visible = xlSheetHidden
Response = Application.InputBox("Password", xTitleId, "", Type:=2)
If Response = "123" Then
Me.Visible = xlSheetVisible
Application.EnableEvents = True
ViewAccess = True
End If
End If
End Sub
解决方案
以下代码将为您提供帮助。当用户选择带有名称的工作表时,HiddenSheet
它会要求输入密码。如果密码正确,则允许编辑数据,否则将自动转到上一个工作表,您必须更改HiddenSheet
工作表名称。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MySheetName As String
MySheetName = "HiddenSheet" 'The sheed which I want to hide.
If Application.ActiveSheet.Name = MySheetName Then
Application.EnableEvents = False
Application.ActiveSheet.Visible = False
response = Application.InputBox("Password", "Enter Password", "", Type:=2)
If response = "123456" Then 'Unhide Password.
Application.Sheets(MySheetName).Visible = True
Application.Sheets(MySheetName).Select
End If
End If
Application.Sheets(MySheetName).Visible = True
Application.EnableEvents = True
End Sub
代码截断:
推荐阅读
- javascript - 单击父项以在集合中打开它的子项(香草 JS)
- azure - 用户、组或应用程序没有秘密获得密钥保管库的权限
- ubuntu - 错误:“~ubuntugis”用户或团队不存在
- appium - 尝试在 Android 虚拟设备上运行 reddit 应用程序后出现 ADB 超时错误
- flutter - 如果由于另一个对象保留对此 State 对象的引用而调用 setState(),则此错误可能表示内存泄漏
- mysql - 错误代码:1366。不正确的整数值:第 2 行的列“ReportsTo”的“NULL”
- php - WordPress仪表板显示为一些编码文本
- snowflake-cloud-data-platform - 具有多个存储过程的任务
- active-directory - 使用 Identity Connect 的 SAML 配置按钮配置 SSO 时出现问题
- android - React-Native Android 不支持所需的屏幕密度和尺寸