Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3139|回复: 4

[分享] 【烟花原创】VBA零基础之第53篇 工作表对象Worksheet(八)

[复制链接]
发表于 2013-12-17 22:35 | 显示全部楼层 |阅读模式
  Worksheet.Protect 方法
  保护工作表使其不能被修改。
  语法:
  Protect(Password, DrawingObjects, Contents,Scenarios, UserInterfaceOnly,
    AllowFormattingCells, AllowFormattingColumns,AllowFormattingRows,
    AllowInsertingColumns, AllowInsertingRows,AllowInsertingHyperlinks,
    AllowDeletingColumns, AllowDeletingRows, AllowSorting,AllowFiltering,
    AllowUsingPivotTables)

  Password 一个字符串,该字符串为工作表或工作簿指定区分大小写的密码。
  如果省略此参数,不用密码就可以取消对工作表或工作簿的保护。
  否则,必须指定密码才能取消对工作表或工作簿的保护。
  如果忘记了密码,就无法取消对工作表或工作簿的保护。
  DrawingObjects 如果为 True,则保护形状。默认值是True
  Contents 如果为 True,则保护内容。对于图表,这样会保护整个图表。
  对于工作表,这样会保护锁定的单元格。默认值是 True
  Scenarios 如果为 True,则保护方案。此参数仅对工作表有效。默认值是 True
  UserInterfaceOnly 如果为 True,则保护用户界面,但不保护宏。如果省略此参数,则既保护宏也保护用户界面。
  AllowFormattingCells 如果为 True,则允许用户为受保护的工作表上的任意单元格设置格式。默认值是 False
  AllowFormattingColumns 如果为 True,则允许用户为受保护的工作表上的任意列设置格式。默认值是 False
  AllowFormattingRows 如果为 True,则允许用户为受保护的工作表上的任意行设置格式。默认值是 False
  AllowInsertingColumns 如果为 True,则允许用户在受保护的工作表上插入列。默认值是 False
  AllowInsertingRows 如果为 True,则允许用户在受保护的工作表上插入行。默认值是 False
  AllowInsertingHyperlinks 如果为 True,则允许用户在受保护的工作表中插入超链接。默认值是 False
  AllowDeletingColumns 如果为 True,则允许用户在受保护的工作表上删除列,要删除的列中的每个单元格都被解除锁定。  默认值是 False
  AllowDeletingRows 如果为 True,则允许用户在受保护的工作表上删除行,要删除的行中的每个单元格都被解除锁定。默认  值是 False
  AllowSorting 如果为 True,则允许用户在受保护的工作表上进行排序。
  排序区域中的每个单元格必须是解除锁定的或取消保护的。
  默认值是 False
  AllowFiltering 如果为 True,则允许用户在受保护的工作表上设置筛选。
  用户可以更改筛选条件,但是不能启用或禁用自动筛选功能。
  用户也可以在已有的自动筛选功能上设置筛选。默认值是 False
  AllowUsingPivotTables 如果为 True,则允许用户在受保护的工作表上使用数据透视表。
  默认值是 False
     53-1.jpg
  大部分的选项都在上图中能找到对应的设置。
  上图中的选定锁定单元格与未锁定单元格是通过Worksheet.EnableSelection属性来设置的。
  该属性的默认值为0xlNoRestrictions,可为下列值:
    xlNoSelection防止在工作表上进行任何选择操作
    xlUnlockedCells 仅允许 Locked 属性为 False 的单元格才能被选定
    xlNoRestrictions 允许选定任意单元格。
  其值只有在工作表处于保护状态时才有效。
  如果要想在保护的情况下,但是VBA代码又能操作工作表,可以采取以下两种方法:
  一是在调用Protect方法时传递参数UserInterfaceOnly:=True
  二是先取消保护,修改完再加上保护。

  
示例:
   ActiveSheet.ProtectPassword:="123", userinterfaceonly:=True
   Range("a1:c5").Formula ="=randbetween(1,50)"
   保护模式下代码可以操作工作表

   ActiveSheet.ProtectPassword:="123", userinterfaceonly:=False
   ActiveSheet.UnprotectPassword:="123"
   Range("a1:c5").Formula ="=randbetween(1,50)"
   ActiveSheet.ProtectPassword:="123", userinterfaceonly:=False
   先取消保护,再操作,然后再重新加上保护。


  Worksheet.Unprotect 方法
  取消工作表或工作簿的保护。
  如果工作表或工作簿不是受保护的,则此方法不起作用。
  语法:Unprotect(Password)
  Password指定用于解除工作表或工作簿保护的密码,此密码是区分大小写的。
  如果工作表或工作簿不设密码保护,则省略此参数。
  如果对工作表省略此参数,而该工作表又设有密码保护,Microsoft Excel 将提示您输入密码。
  如果对工作簿省略此参数,而该工作簿又设有密码保护,则该方法将失效。
  如果您忘记了密码,将不能取消工作表或工作簿的保护。

  示例:
  Activesheet.unprotect
  Activesheet.unprotect "123"
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-28 10:32 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-18 11:19 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-18 16:28 | 显示全部楼层
{:29:}
回复

使用道具 举报

发表于 2014-6-25 21:14 | 显示全部楼层
谢谢分享,标记,五十三
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 10:02 , Processed in 0.489142 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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