VBA技巧的保护与解除保护

上传人:朋友****56 文档编号:61196229 上传时间:2018-11-25 格式:DOC 页数:3 大小:139.54KB
返回 下载 相关 举报
VBA技巧的保护与解除保护_第1页
第1页 / 共3页
VBA技巧的保护与解除保护_第2页
第2页 / 共3页
VBA技巧的保护与解除保护_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《VBA技巧的保护与解除保护》由会员分享,可在线阅读,更多相关《VBA技巧的保护与解除保护(3页珍藏版)》请在金锄头文库上搜索。

1、技巧1 工作表的保护与解除保护在在实际应用中,Excel编制的报表、表格、程序等,往往在单元格中设置了公式、函数、自定义格式等,为了防止在使用过程中修改或无意中修改这些设置,一般使用Excel的工作表保护功能来保护这些设置。但是程序中可能会使用代码对受保护的工作表进行操作,此时如果没有解除工作表保护,运行出现错误,如图 381所示。图 11运行错误提示解决方法是在运行操作工作表的代码前先使用代码解除工作表保护,待操作完毕后再保护工作表,如下面的代码所示。#001 Sub ShProtect()#002 With Sheet1#003 .Unprotect Password:=12345#004

2、 .Cells(1, 1) = 100#005 .Protect Password:=12345#006 End With#007 End Sub代码解析:ShProtect过程在受保护的工作表中对单元格进行操作,其中第3行代码使用Unprotect方法解除工作表的保护。应用于Worksheet 对象的Unprotect方法解除工作表的保护,如果工作表不是受保护的,则此方法不起作用,所以在解除之前无需判断工作表是否受保护,其语法如下:expression.Unprotect(Password)参数expression是必需的,该表达式返回一个Worksheet 对象。参数Password是可选

3、的,指定用于解除工作表的保护的密码,此密码是区分大小写的。第4、5行代码在单元格录入数据后使用Protect方法重新保护工作表。应用于Worksheet对象的Protect方法保护工作表使其不至被修改,语法如下:expression.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows,

4、 AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables) 其中参数expression是必需的,该表达式返回一个Worksheet对象。参数Password是可选的,为一个字符串,该字符串为工作表指定区分大小写的密码。其他参数都是可选参数,其功能等同于如图 382所示的工作表保护对话框中的各项选项,具体请参阅VBA帮助。图 12工作表保护选项如果一个Excel文件使用时间过长,忘记了工作表保护时设置的密码,那么也

5、可以使用VBA解除工作表的保护,代码如下:#001 Sub RemoveShProtect()#002 Dim i1 As Integer, i2 As Integer, i3 As Integer#003 Dim i4 As Integer, i5 As Integer, i6 As Integer#004 Dim i7 As Integer, i8 As Integer, i9 As Integer#005 Dim i10 As Integer, i11 As Integer, i12 As Integer#006 On Error Resume Next#007 If ActiveShe

6、et.ProtectContents = False Then#008 MsgBox 该工作表没有保护密码!#009 Exit Sub#010 End If#011 For i1 = 65 To 66: For i2 = 65 To 66: For i3 = 65 To 66#012 For i4 = 65 To 66: For i5 = 65 To 66: For i6 = 65 To 66#013 For i7 = 65 To 66: For i8 = 65 To 66: For i9 = 65 To 66#014 For i10 = 65 To 66: For i11 = 65 To 6

7、6: For i12 = 32 To 126#015 ActiveSheet.Unprotect Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) _#016 & Chr(i6) & Chr(i7) & Chr(i8) & Chr(i9) & Chr(i10) & Chr(i11) & Chr(i12)#017 If ActiveSheet.ProtectContents = False Then#018 MsgBox 已经解除了工作表保护!#019 Exit Sub#020 End If#021 Next: Next: Next: Next: Next: Next#022 Next: Next: Next: Next: Next: Next#023 End Sub代码解析:RemoveShProtect过程解除工作表的保护。其中第7行到第10行代码判断工作表是否受保护,ProtectContents属性返回工作表的保护状态,如果工作表的内容处于保护状态,则该值为True。第11行到第22行代码使用For.Next 语句和Chr函数来返回指定字符码所代表的字符串组合不断地尝试解除工作表保护,一旦工作表的ProtectContents属性返回False说明已经解除工作表保护。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号