
本文于2023年9月10日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!
内容提要
用户登录窗体
工作表权限控制
大家好,我是冷水泡茶,前几天在知乎上有一个提问:Excel如何实现不同的人在同一表格中看到不同的内容?

当时,我想“同一表格”,那么应该是一张表吧?这如何控件权限呢?估计很难办到吧。
于是,我就想到我们分享过的【文件拆分工具】,觉得可以把原始数据拆分成不同的文件,给不同的人,相当于间接解决问主的问题。就这样回答了:

但是,后来一想,也有可能是不同的表格吧?比如分部门的数据表,部门A一张表,部门B一张表等等,这样一来,可能就是同一个文件,发给不同部门的人,打开后显示不同的表。
虽然觉得这样可能有点麻烦,但是也有可能真有这种需求,不同的人打开显示不同的表。
好像我跟哪个公众号粉丝讨论过类似问题,具体细节记不清了。
于是,我就琢磨起来,搞了一个用户登录权限控制,不同的用户只显示权限表中有权限的表。我们一起来看一看吧:
基本思路与过程:
1、设置用户登录窗体,正确输入用户名与密码后才能登录,否则只能看到一张表“Main”。

2、设置“用户权限表”:

ID、密码是登录的依据,权限就是工作表名,用“/”隔开,为了简便起见,设置一个“All”,代表所有权限。设置管理员账号“admin”。
3、设置“用户权限管理”窗体,用来修改用户权限:

(1)通过组合框选择不同的用户ID,右侧设一个标签显示用户姓名,增加辨识度。
(2)在下方用CheckBox控件,列出所有工作表名称,通过勾选设置权限。
(3)设置“整理”命令按钮,把用户权限中不存在的表名清除。
4、设置“Main“工作表,放置“用户登录”按钮等:

(1)如果是admin用户,或者权限中有“用户权限表”的用户,会显示这三个按钮,否则仅显示“用户登录”按钮。
(2)用户登录后,会在A1单元格显示登录的用户信息,权限信息。
5、VBA工程设置密码,如果不设密码,或者密码过于简单,那么这个权限控制就形同虚设。在我们的演示文档中,VBA工程密码是0,如果要实际使用,则应设置复杂一点的密码。
动画演示
1、用户登录:

2、权限管理:

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