分享

跟烟花入门VBA之53:工作表对象Worksheet(八)

 fzchenwl 2015-04-01

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
    

2013-12-17 22:33 上传

下载附件 (21.84 KB)

  大部分的选项都在上图中能找到对应的设置。

  上图中的选定锁定单元格与未锁定单元格是通过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'


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多