昨天有学员问道:如何将Excel中的工作表,每个工作表设置不一样的密码,只有输入密码,才能看到对应的数据,防止数据泄露。

想要实现这样的效果,通过Excel中的默认功能是不能行,只能通过 VBA 代码了,我们来具体演示下

首先我们需要新建一个sheet,并且将其的工作表名称名称为:登录界面,之后就需要在当前的窗口中来插入控件了

首先点击【开发工具】然后点击找到【文本框】来创建一个文本框,之后点击【文本框】点击鼠标右键找到【姓名】将【名称】更改为【txtPassword】

随后继续点击插入控件,来插入一个按钮,插入按钮后也是点击控件,点击右键找到【属性】做2处修改,【名称】更改为【btnUnlock】然后将【Caption】更改为【确定】最后调整下大小,放在一个合适的位置即可

复制下方代码,按下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 sheet s("登录界面").Visible = xlSheetVisible End Sub

点击刚才创建的【文本框】然后点击鼠标右键,找到【查看代码】将下面的代码粘贴到代码区域即可

密码与工作表的名称需要根据自己的实际数据修改,在下面的代码中,左侧的是密码,右侧的是 工作表 名称,只需修改双引号中的内容为自己的数据即可 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问题,可以了解下我的专栏, WPS 用户也能使用,讲解了函数、图表、 透视 表、数据看板、AI做表格等功能

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。