ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 宏运行工作表保护后允许自动帅选(保护密码是1234)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-2-25 09:34 | 显示全部楼层 |阅读模式
本帖最后由 feiaoli 于 2024-2-25 15:27 编辑

请各位大佬伸出友爱的援助之手,不胜感激!
1、宏运行工作表保护后允许自动帅选。
2、保护时候去掉   "选定锁定单元格"勾选。
3、保护密码是1234
  1. Private Sub Worksheet_Change(ByVal Target As Range)


  2. ActiveSheet.Unprotect "1234" '解除工作表保护1234是保护密码
  3. Dim X As Integer '解除所有工作表保护
  4.       For X = 1 To Sheets.Count '解除所有工作表保护
  5.          ' Sheets(X).Unprotect "1234" '解除所有工作表保护
  6.       Next X '解除所有工作表保护
  7. Dim sht As Worksheet
  8. Dim sh As Worksheet


  9. 'Dim sht As Worksheet
  10. 'Dim sh As Worksheet
  11. Set sht = ThisWorkbook.Sheets("数据库")
  12. Set sh = ThisWorkbook.Sheets("县级预算项目资金支出计划申请书")
  13. Application.EnableEvents = False
  14. If Target.Address = "$E$3" And Not IsEmpty(Target) Then
  15.     With sht
  16.        r = .Cells(.Rows.Count, "AV").End(3).Row
  17.        For i = 2 To r
  18.            If .Cells(i, "AV").Value = Target.Value Then
  19.                 arr = .Cells(i, 1).Resize(, 64)
  20.                 MsgBox "找到位置,在数据库的第:" & i & " 行"
  21.                 Exit For
  22.            End If
  23.        Next
  24.     End With
  25.    
  26.     If Not IsEmpty(arr) Then
  27.         With sh
  28.             .[b2] = Mid(arr(1, 1), 9, 11)
  29.             .[e2] = arr(1, 2)
  30.             .[b3] = arr(1, 50)
  31.             .[b4] = arr(1, 52)
  32.             .[b5] = arr(1, 45)
  33.             .[b6] = arr(1, 4)
  34.             .[d4] = arr(1, 56)
  35.             .[d5] = arr(1, 46)
  36.             .[d6] = arr(1, 12) + arr(1, 13)
  37.         '    .[f4] = arr(1, 56)
  38.         '    .[f5] = arr(1, 56)
  39.         '    .[f6] = arr(1, 56)
  40.             .[a7] = "预算单位意见(领导签字盖公章):" + arr(1, 50)
  41.         End With
  42.     Else
  43.         MsgBox "没有找到你输入的指标号,退出!"
  44.         With sh
  45.         .[b2:c2] = ""
  46.         .[e2:f2] = ""
  47.         .[b3:c3] = ""
  48.         .[b4] = ""
  49.         .[b5] = ""
  50.         .[b6] = ""
  51.         .[d4] = ""
  52.         .[d5] = ""
  53.         .[d6] = ""
  54.         .[f4] = ""
  55.         .[f5] = ""
  56.         .[f6] = ""
  57.         .[a7:f7] = ""
  58.         End With
  59.     End If
  60. ElseIf Target.Address = "$E$3" And IsEmpty(Target) Then
  61.     With sh
  62.         .[b2:c2] = ""
  63.         .[e2:f2] = ""
  64.         .[b3:c3] = ""
  65.         .[b4] = ""
  66.         .[b5] = ""
  67.         .[b6] = ""
  68.         .[d4] = ""
  69.         .[d5] = ""
  70.         .[d6] = ""
  71.         .[f4] = ""
  72.         .[f5] = ""
  73.         .[f6] = ""
  74.         .[a7:f7] = ""
  75.     End With
  76. End If
  77. Application.EnableEvents = True


  78. ActiveSheet.Protect "1234" '工作表保护1234是保护密码
  79.      AllowFiltering = True                           '密码保护后允许筛选
  80. Dim b As Integer '保护所有工作表
  81.       For b = 1 To Sheets.Count '保护所有工作表
  82.           Sheets(b).Protect "1234" '保护所有工作表
  83.       Next b '保护所有工作表

  84. End Sub



复制代码





再次谢谢taller老师无私的帮助。


宏运行工作表保护后允许自动帅选(保护密码是1234).rar

18.93 KB, 下载次数: 2

宏运行工作表保护后允许自动帅选(保护密码是1234)

(已解决)宏运行工作表保护后允许自动帅选(保护密码是1234).rar

19.76 KB, 下载次数: 6

(已解决)宏运行工作表保护后允许自动帅选(保护密码是1234)

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-25 11:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在线等老师!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-25 12:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-2-25 12:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-25 13:25 | 显示全部楼层

老师,选定《单元格勾选去掉了》,但是《没有勾选上 自动筛选》,因为是VBA小白,还请老师多多指教。
  1. '-------------  '工作表保护1234是保护密码'密码保护后允许筛选--------------
  2.      ActiveSheet.EnableSelection = xlUnlockedCells
  3.      ActiveSheet.Protect "1234", AllowFiltering = True ', EnableAutoFilter = True,ShowAutoFilter = True
  4. '----------------工作表保护1234是保护密码'密码保护后允许筛选--------------
  5. Dim b As Integer '保护所有工作表
  6.       For b = 1 To Sheets.Count '保护所有工作表
  7.           Sheets(b).Protect "1234" '保护所有工作表
  8.       Next b '保护所有工作表
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-25 15:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

再次谢谢老师!一下子没有领悟到老师的意思,修改了一下!
(已解决)宏运行工作表保护后允许自动帅选(保护密码是1234)
  1. '-------------  '工作表保护1234是保护密码'密码保护后允许筛选--------------
  2. ActiveSheet.EnableSelection = xlUnlockedCells
  3. Dim b As Integer '保护所有工作表
  4.       For b = 1 To Sheets.Count '保护所有工作表
  5.         Sheets(b).Protect "1234", Contents:=True, AllowFiltering:=True   '保护所有工作表允许保护后自动筛选
  6.       Next b
  7. '-------------  '工作表保护1234是保护密码'密码保护后允许筛选--------------
复制代码

(已解决)宏运行工作表保护后允许自动帅选(保护密码是1234).rar

19.76 KB, 下载次数: 6

(已解决)宏运行工作表保护后允许自动帅选(保护密码是1234)

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-1 18:47 , Processed in 0.040483 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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