工作簿保护
注意:工作簿结构和窗口的保护可应用于整个工作簿。
锁定工作簿的结构,以禁止用户添加或删除工作表,或显示隐藏的工作表。
锁定工作簿的窗口,以禁止用户更改工作表窗口的大小或位置。
我们手动操作Excel 如下图所示
VBA代码写法如下:
Sub 密码保护工作簿()
'该VBA代码只锁定工作簿结构
ThisWorkbook.Protect Password:='123456', Structure:=True, Windows:=False
End Sub
Sub 撤销密码保护工作簿()
ThisWorkbook.Unprotect Password:='123456'
End Sub
保护工作表
默认情况下,保护工作表时,该工作表中的所有单元格都会被锁定,用户不能对锁定的单元格进行任何更改。例如,用户不能在锁定的单元格中插入、修改、删除数据或者设置数据格式。
我们手动操作Excel 如下图所示
那用VBA代码表示的话,老师推荐的代码如下:
Sub 密码保护所有工作表()
'运行代码后,当前工作簿中的所有工作表都将不允许编辑,除非撤销工作表保护
'On Error Resume Next
Dim ws As Worksheet, Mima As String
Mima = InputBox('请输入您的密码' & vbCrLf & '(不输入表明无密码)' & vbCrLf & vbCrLf & '确保您没有忘记密码!', '输入密码')
For Each ws In ThisWorkbook.Worksheets
ws.Protect (Mima)
Next ws
End Sub
注意:此代码保护工作表时,只是默认的保护形式, 保护的时候允许用户操作权限还可以做多样的变动,如允许插入行,插入列,格式化数据等等等等。 同学们可以自己录制个宏查看下代码,我相信能写代码的都有一定的英语水平,宏录制生成的代码,一般都能看懂。 老师录制的宏经改变格式后如下:
Sub 宏1()
ActiveSheet.Protect _
DrawingObjects:=False, _
Contents:=True, Scenarios:=False, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingColumns:=True, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=True, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
End Sub
Sub 解除密码保护所有工作表()
'运行代码后,解除工作簿各工作表的保护
On Error Resume Next
Dim ws As Worksheet
Dim Mima As String
Mima = InputBox('请输入您的密码' & vbCrLf & '(不输入表示无密码)', '输入密码')
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect (Mima)
Next ws
End Sub
联系客服