ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3351|回复: 11

[求助] 同一工作簿中对不同工作表设置查看密码,输入正确密码才能显示相应工作表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-9-6 15:37 | 显示全部楼层 |阅读模式
最近想把给单位其他部门看的表格进行加密,只有相应人员输入各自的密码才能查看自己相应的表格。在论坛上搜索后在
http://club.excelhome.net/thread-1219741-2-1.html发现有类似功能实现,但在自己的表格中输入密码却不能弹出相应工作表。请高手帮忙看下问题在何处。


学生名册.rar (888.19 KB, 下载次数: 57)

TA的精华主题

TA的得分主题

发表于 2019-9-6 18:09 | 显示全部楼层
本帖最后由 laynet 于 2019-9-6 22:37 编辑

密码本1.rar (11.66 KB, 下载次数: 61)
随便写写,还有很多漏洞,得你自己补上,密码不能写在工作表内,得写在宏里面,然后给宏加上密码.



  1. Sub 输入密码()
  2. Dim P(), S()
  3. ReDim P(1 To 100)
  4. ReDim S(1 To 100)

  5. P(1) = "1" '密码1
  6. P(2) = "2" '密码2
  7. P(3) = "3" '密码3
  8. P(4) = "4" '密码4
  9. S(1) = "Sheet1" '密码1对应的表
  10. S(2) = "Sheet2" '密码2对应的表
  11. S(3) = "Sheet3" '密码3对应的表
  12. S(4) = "Sheet4" '密码4对应的表


  13. mm = 1
  14. m = InputBox("请输入密码查看内容", "提示")

  15. For i = 1 To 100
  16. On Error Resume Next
  17. Sheets(S(i)).Visible = xlVeryHidden '-1显示,xlVeryHidden隐藏
  18. If m = P(i) Then
  19. On Error Resume Next
  20. Sheets(S(i)).Visible = -1    '-1显示,xlVeryHidden隐藏
  21. Sheets(S(i)).Select
  22. mm = 0
  23. End If
  24. Next i

  25.   
  26. If mm = 1 Then MsgBox "你确定你有查看权限?", vbOKOnly
  27.   

  28.   
  29.   
  30.   
  31.   
  32.   
  33.   

  34. End Sub

复制代码






评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-9 09:40 | 显示全部楼层
laynet 发表于 2019-9-6 18:09
随便写写,还有很多漏洞,得你自己补上,密码不能写在工作表内,得写在宏里面,然后给宏加上密码.

想问下:如何能把弹出的输入密码的框中的信息用*号代替?

TA的精华主题

TA的得分主题

发表于 2019-9-9 09:57 来自手机 | 显示全部楼层
shdh 发表于 2019-9-9 09:40
想问下:如何能把弹出的输入密码的框中的信息用*号代替?

这恐怕要userform吧,inputbox没有

TA的精华主题

TA的得分主题

发表于 2019-9-9 16:32 | 显示全部楼层
密码本.rar (413.71 KB, 下载次数: 165)

这个怎么样?
微信图片_20190909163142.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-10 23:20 | 显示全部楼层

感谢你的帮助,多次试验终于成功了,还想再请教下,现在的情况是密码输入后一直都保存在输入框里,除非关掉,能不能再切换到首页的时候,自动清空密码框的内容?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-10 23:31 | 显示全部楼层
Dim ctlText As Object
            For Each ctlText In Me.Controls
                If TypeOf ctlText Is TextBox Then
                    ctlText.Enabled = False
                End If
            Next
  

论坛里好象有段这个代码,但自己放进去不对,不知道具体该放在主页里还是模块里,但总是提示    For Each ctlText In Me.Controls 有问题。

TA的精华主题

TA的得分主题

发表于 2019-9-11 09:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
shdh 发表于 2019-9-10 23:31
Dim ctlText As Object
            For Each ctlText In Me.Controls
                If TypeOf ctlTex ...

哪里需要写得这么复杂
QQ截图20190911092413.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-12-29 14:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习一下,感谢分享哈

TA的精华主题

TA的得分主题

发表于 2022-3-25 10:29 | 显示全部楼层
laynet 发表于 2019-9-11 09:25
哪里需要写得这么复杂

这个是每个文件都输入这个代码,设置密码吗?请问可不可以在设置一个管理员账户,就是管理员是不用输入密码就能查看的呢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 17:27 , Processed in 0.047949 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表