你会批量保护工作表吗

excel中批量保护或者隐藏工作表效果:当更改b或者d列的条件,对应的工作表就被隐藏或者保护!经常需要将工作表发给老板或者同事,有的表又不想让他们编辑 , 赶快使用这招保护你的工作表吧:

你会批量保护工作表吗

第一步:批量提取工作表,可以做后续的工作表创建目录链接

按ALT F11进入vba编辑器,右键插入一个模块,输入以下代码:
Sub 提取表名()
Application.ScreenUpdating = False '取消屏幕更新
Dim i As Integer '定义变量
Sheet9.Cells(1, 3) = "表名" '目录(sheet9)中C1中输入“表名称”
For i = 2 To Sheets.Count '从第2个到最后一个表
Sheet9.Cells(i, 3) = Sheets(i).Name '一直循环取表名放在c列
Next
MsgBox ("提取完毕") '弹出提示框
Application.ScreenUpdating = True '屏幕可以更新
【你会批量保护工作表吗】End Sub
你会批量保护工作表吗

二、指定宏,插入一个命令按钮


你会批量保护工作表吗

三、批量隐藏工作表


你会批量保护工作表吗

Sub 隐藏或者取消隐藏()
Application.DisplayAlerts = False
Dim sht As Worksheet
Dim i, irow As Integer
irow = Sheet9.Range("c65536").End(xlUp).Row '确定c列最后一个空行行号
For i = 2 To irow
If Sheet9.Range("b" & i) = "隐藏" Then
For Each sht In Sheets
If sht.Name = Sheet9.Range("c" & i) Then '判断c列中如果有隐藏
sht.Visible = 0 '工作表可见性为0即隐藏
End If
Next
ElseIf Sheet9.Range("b" & i) = "" Then
For Each sht In Sheets
If sht.Name = Sheet9.Range("c" & i) Then
sht.Visible = -1 '如果为空就取消隐藏
End If
Next
End If
Application.DisplayAlerts = True
Next
End Sub
如果是要批量保护或者取消保护就可以修改代码
你会批量保护工作表吗

四、调用宏代码,更改工作表事件

为了防止我们每一次更改条件后都要去执行代码,我们可以在目录表中修改工作事件为【change】就是当这个表中发生了变化就自动帮我们执行保护或者隐藏工作表的代码!
Private Sub Worksheet_Change(ByVal Target As Range)
Call 隐藏或者取消隐藏
Call 保护或者取消保护
End Sub
你会批量保护工作表吗

最后一步步就是将工作表保存为启用宏的工作簿!不然我们写的代码不能保存啦!

WPS小技巧:一键取消隐藏的工作表
Excel中按照条件拆分工作表,我不要在写复杂的函数或者代码了
Excel多表合并与查询,你也试试吧

相关经验推荐