昨天有学员问道:如何将Excel中的工作表,每个工作表设置不一样的密码,只有输入密码,才能看到对应的数据,防止数据泄露。
想要实现这样的效果,通过Excel中的默认功能是不能行,只能通过VBA代码了,我们来具体演示下
一、登录界面
首先我们需要新建一个sheet,并且将其的工作表名称名称为:登录界面,之后就需要在当前的窗口中来插入控件了
首先点击【开发工具】然后点击找到【文本框】来创建一个文本框,之后点击【文本框】点击鼠标右键找到【姓名】将【名称】更改为【txtPassword】
![]()
随后继续点击插入控件,来插入一个按钮,插入按钮后也是点击控件,点击右键找到【属性】做2处修改,【名称】更改为【btnUnlock】然后将【Caption】更改为【确定】最后调整下大小,放在一个合适的位置即可
![]()
二、代码1
复制下方代码,按下ALT+F11打开VBA窗口,之后在右侧的窗口中找到【ThisWorkbook】,双击它,将代码粘贴到里面即可
Private Sub Workbook_Open()
' 工作簿打开时隐藏所有数据表,只显示登录界面
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "登录界面" Then ws.Visible = xlSheetVeryHidden
Next ws
Sheets("登录界面").Visible = xlSheetVisible
End Sub
![]()
三、代码2
点击刚才创建的【文本框】然后点击鼠标右键,找到【查看代码】将下面的代码粘贴到代码区域即可
密码与工作表的名称需要根据自己的实际数据修改,在下面的代码中,左侧的是密码,右侧的是工作表名称,只需修改双引号中的内容为自己的数据即可
最后将文件的格式另存为XLSM格式,保存文件,关闭文件,重新打开即可,到此设置完毕
Private Sub btnUnlock_Click()
Dim targetSheet As String
Dim pwd As String
Dim sheetFound As Boolean
pwd = txtPassword.Text
sheetFound = False
' 定义工作表密码映射(实际使用中建议加密存储)
Select Case pwd
Case "pass1": targetSheet = "财务部" ' 确保名称与实际表名一致
Case "pass2": targetSheet = "行政部"
Case "pass3": targetSheet = "人事部"
Case "pass4": targetSheet = "市场部"
Case "pass5": targetSheet = "总经办"
Case Else
MsgBox "密码错误!", vbCritical
Exit Sub
End Select
' 检查工作表是否存在
On Error Resume Next
sheetFound = (Not Sheets(targetSheet) Is Nothing)
On Error GoTo 0
If sheetFound Then
' 显示目标工作表
Sheets(targetSheet).Visible = xlSheetVisible
Sheets(targetSheet).Activate
' 清空密码框
txtPassword.Text = ""
Else
MsgBox "错误:找不到工作表 '" & targetSheet & "'!", vbCritical
End If
End Sub
![]()
以上就是今天分享的全部内容,大家可以试一下,操作还是比较简单的~
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.