excel

关注公众号 jb51net

关闭
软件教程 > 办公软件 > excel >

Excel最强加密方法来了! excel表格中每个sheet设独立密码的技巧

脚本之家

昨天有学员问道:如何将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

以上就是今天分享的全部内容,大家可以试一下,操作还是比较简单的~

推荐阅读:excel中用COUNTIF和SUMIF统计老是出错怎么办? 加个星号轻松解决