打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA:工作簿/工作表保护


工作簿保护

注意:工作簿结构和窗口的保护可应用于整个工作簿。

  • 锁定工作簿的结构,以禁止用户添加或删除工作表,或显示隐藏的工作表。

  • 锁定工作簿的窗口,以禁止用户更改工作表窗口的大小或位置。

  • 我们手动操作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



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Worksheet对象应用大全(1)-应用基础
一招破解工作表保护密码
忘记Excel工作表密码怎么办?一招教你快速解决
将同一工作簿中多个工作表独立保存为文档
VBA代码库10:强制用户启用宏
快速保护所有工作表或撤消所有工作表保护
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服