龙空技术网

Excel VBA【案例更新】工作表权限控制/保护工作表/自行修改密码

Excel活学活用 64

前言:

如今我们对“权限管理系统权限设置”都比较注重,姐妹们都需要知道一些“权限管理系统权限设置”的相关知识。那么小编在网络上收集了一些关于“权限管理系统权限设置””的相关内容,希望各位老铁们能喜欢,同学们快快来学习一下吧!

本文于2023年9月13日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!

内容提要

保护工作簿用户自行修改密码

大家好,我是冷水泡茶,前几天我们分享了一个案例【工作表权限控制】,实现不同用户登录,仅显示有权限的工作表,其他没有权限的工作表隐藏;工作表权限可通过勾选用户窗体上的工作表名来设置,非常方便。

今天有位粉丝朋友用了以后,觉得不错,但是功能方面可以再完善一下:

我觉得应该可以实现这些功能,但是可能要花一些时间与精力

后来,这位朋友在另一篇文章下面打赏,留言希望我帮忙做一下,看来是没法再推辞了。于是,就花了点时间做了功能更新。更新的内容还是比较多的,我们一起来看一看吧

基本思路与过程:

1、保护工作簿,用工作簿的Protect方法,说起来很简单,实际操作起来就不是那么回事了,在这块费了不少功夫,老是报错。我们有一个显示、隐藏工作表的操作,但是在工作簿保护状态下,是不能改变工作表的显示或隐藏状态的。

所以,我们要在用户登录以后将工作簿保护,在登录前,即在根据权限显示与隐藏工作表前,要将工作簿解保护。

这里还有个问题,就是保护工作簿的密码设置。

开始,我用了一个Public变量wbPassWord来存放密码,在过程中给其赋值。但是如果停止宏或其他运行异常的情况下,密码会丢失,那么就无法用代码来解保护了,接着运行BactTo过程、根据用户权限显示与隐藏工作表,就会报错。

后来,又想到把密码存放在登录窗体的一个Label的Caption里,也是同样的问题,密码会丢失。而且,我们在工作簿关闭前增加解保护的操作,这时读不到用户窗体上的密码(因为窗体已关闭了)。

最后,决定把保护密码存到工作表里,是增加一张表呢?还是存在“Main”表里呢?还是存在“用户权限表”里?(有点纠结,在我前面一些案例里,有个专门的表“Settings”用来存放这些信息的。)

后来注意到“admin”,实然有了主意,我们可以把保护密码设置为“admin”(管理员)的密码啊,感觉真是再合理不过了,同时也省却修改保护密码的麻烦。

2、修改密码,这块相对简单一点,这个我以前做过。在登录窗体上增加一个命令按钮“修改”。用户输入用户名、密码后,点修改,然后提示输入新密码,再将新密码保存到“用户权限表”。

动画演示

1、用户登录,保护工作簿:

2、修改密码:

~~~~~~End~~~~~~

喜欢就点个、点在看留个言、分享一下呗!感谢!

标签: #权限管理系统权限设置