VBA允许某些用户查看&;使用登录表单编辑工作簿中的某些工作表&;表中包含用户名和密码的管理表

VBA允许某些用户查看&;使用登录表单编辑工作簿中的某些工作表&;表中包含用户名和密码的管理表,vba,excel,Vba,Excel,提前谢谢你对我的帮助 我目前工作的公司已经让我建立了一个基于电子表格的系统来进行新产品的成本开发。但是,许多访问此工作簿的人不允许查看按公司策略计算的成本,因此他们要求使用登录表单对此工作簿进行安全保护。我用用户名文本框(txtser)、密码文本框(txtPass)和命令按钮(cmdLogin)构建了登录表单。在表格中,我们有以下表格。摘要、报价、客户服务、生产、质量、库存、财务、库存、维护、采购、数据、模具和管理。在管理表中,我有两个表。表1(tblUsers)列出了所有用户名、密码以及允许他

提前谢谢你对我的帮助


我目前工作的公司已经让我建立了一个基于电子表格的系统来进行新产品的成本开发。但是,许多访问此工作簿的人不允许查看按公司策略计算的成本,因此他们要求使用登录表单对此工作簿进行安全保护。我用用户名文本框(txtser)、密码文本框(txtPass)和命令按钮(cmdLogin)构建了登录表单。在表格中,我们有以下表格。摘要、报价、客户服务、生产、质量、库存、财务、库存、维护、采购、数据、模具和管理。在管理表中,我有两个表。表1(tblUsers)列出了所有用户名、密码以及允许他们查看的表单列表。附件是文件。当用户打开工作簿时,我希望我的表单弹出并请求他们的用户名和密码。如果用户名和密码与我在tblUser中拥有的匹配,那么我想授予他们访问我授予他们在tblUser中查看并隐藏所有其他内容的权限的工作表列表的权限。如果他们没有输入正确的密码,我希望他们有一个消息框,询问他们是否愿意重试或关闭该程序。如果他们重试,我想再次显示userform。我尝试了一些其他论坛上留下的样本,但似乎无法让它调整为有一张桌子

简单的答案是,在关闭工作簿时隐藏所有工作表,只有一个工作表。(您必须有一个可见的表格,以便显示“您没有查看此工作簿的权限”)然后在打开工作簿时,弹出表单并有选择地取消隐藏所需的表格


更长远的答案是,没有这样的安全系统是值得的-任何人都可以谷歌如何破解它在几分钟内。但我想这会让你的老板高兴。(如果你真的想让它安全,你可以在编译的C+模块中的自定义项中隐藏成本数据,并且只返回结果。)

首先,欢迎使用Stackoverflow。你要求了一些东西。我建议您在不同的帖子中对此进行细分。但是作为一个整体逻辑,您可以让用户登录到PC,并创建一个包含用户名列表的工作表,而不是使用userform要求用户登录。然后,当用户试图打开工作簿时,如果他们存在于您的列表中,您可以向他们显示工作表。如果工作表中不存在该用户,您可以显示一条消息与您联系,以便添加到列表中,或者关闭工作簿,并显示一条消息,说明您无权查看此工作簿