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
以上就是今天分享的全部内容,大家可以试一下,操作还是比较简单的~