excel vab 保护

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel vab 保护相关的知识,希望对你有一定的参考价值。

网上看到一段代码,高手帮我整合下
通过单击按钮实现保护、解除保护。
要实现对单个工作表的保护,解除保护!!!!不是整个工作薄

保护工作簿(Protect方法)
Sub ProtectWorkbook()
MsgBox "保护工作簿结构,密码为123"
ActiveWorkbook.Protect Password:="123", Structure:=True
MsgBox "保护工作簿窗口,密码为123"
ActiveWorkbook.Protect Password:="123", Windows:=True
MsgBox "保护工作簿结构和窗口,密码为123"
ActiveWorkbook.Protect Password:="123", Structure:=True, Windows:=True
End Sub
示例说明:使用Protect方法来保护工作簿,带有三个可选参数,参数Password指明保护工作簿密码,要解除工作簿保护应输入此密码;参数Structure设置为True则保护工作簿结构,此时不能对工作簿中的工作表进行插入、复制、删除等操作;参数Windows设置为True则保护工作簿窗口,此时该工作簿右上角的最小化、最大化和关闭按钮消失。

解除工作簿保护(UnProtect方法)
Sub UnprotectWorkbook()
MsgBox "取消工作簿保护"
ActiveWorkbook.Unprotect "123"
End Sub

Sub ProtectWorkSheet()
ActiveSheet.Protect Password:="123"
End Sub

这个是保护单个工作表。

Sub UnProtectWorkSheet()
ActiveSheet.UnProtect Password:="123"
End Sub

这个是解除工作表保护、追问

ProtectWorkSheet()
这个是什么事件?
我想通过按钮单击实现,最好带上MsgBox 功能,看起来专业些,谢谢!
请帮忙解答

追答

你新建一个按钮后,双击进入VBE,然后输入下列代码。
Private Sub CommandButton1_Click()
ActiveSheet.Protect Password:="123"
MsgBox "当前工作表保护密码为123"
ActiveSheet.Unprotect Password:="123"
MsgBox "取消当前工作表保护,密码为123"
End Sub
即可自行测试了

工作表保护不能保护结构和窗体,所以没有保护工作簿那么麻烦

追问

我也是这么做的,但没有起到保护的作用,我要的效果就是菜单里面的保护工作表,可以防止他人编辑的那种。

追答

晕这个是让你测试啊,这一段程序是先保护,再取消。
分开。你如果只需要保护就建立一个按钮,输入下列代码:
Private Sub CommandButton1_Click()
ActiveSheet.Protect Password:="123"
MsgBox "当前工作表保护密码为123"
End Sub

再建立一个按钮,解除保护输入下列代码:
Private Sub CommandButton2_Click()
ActiveSheet.Unprotect Password:="123"
MsgBox "取消当前工作表保护,密码为123"
End Sub

参考技术A ProtectWorkSheet()是事件吗?

不是所有的子程序都是事件,我人为ProtectWorkSheet只不过是子程序名而已,你愿意叫阿猫阿狗都行。

你要用按钮调用也可以,你可以参考这个:(这次是事件相应的子程序名,子程序名不能改。)
http://zhidao.baidu.com/question/252849121.html
上例是普通按钮,你要想用开关型按钮,则使用ToggleButton,可以在其change事件中进行判断开关的状态,然后执行相关操作。
Private Sub ToggleButton1_Change()
If ToggleButton1.Value = True Then
'保护,代码自己写
Else
'取消保护,代码自己写
End If
End Sub

也可以在工具栏上添加一个“宏”工具按钮的“自定义按钮”,并指定宏为刚才的“阿猫阿狗”(这时可以随便取名)。每个保护、取消保护都需要设置一个按钮。

excel根据条件自动显示隐藏行 (不用宏和VAB代码实现)

看截图,当A1>40,黄色区域的整个行隐藏,否则显示,回答者不要用宏或VAB代码,也不要用把内容隐藏,而行还在。
同志们是自动显示隐藏,不要手动

先看下例子表格是什么样的,有利于更加方便的介绍怎么隐藏行。
隐藏行方法一:选中要隐藏的行,一行也可以,多行也行,一次隐藏多行也是可以的,现在说隐藏2,3行,先选中2,3行,然后右键,点击隐藏即可。
隐藏行方法二:还是按照方法一中的步骤,选中要隐藏的行,然后点击右上角的格式,再将鼠标放到隐藏和取消隐藏上,点击隐藏行,即可。
参考技术A 条件格式应该能满足你的要求 步骤如下, 1。鼠标选中21行以下的需要隐藏的所有行 2。格式-条件格式-使用公式确定要设置格式的单元格-新建规则-输入 =$b$9="内部调整" 3.设置格式-数字-自定义-输入 ;;; 确定 这样就做到了,B9=内部调整”不显示21行一下的行,但是内容还在, 参考技术B 按你说的要求,此题无解!
唯有用VBA代码才能实现你说的!

以上是关于excel vab 保护的主要内容,如果未能解决你的问题,请参考以下文章

如何去除excel的宏保护?

excel如何撤销工作表保护

excel根据条件自动显示隐藏行 (不用宏和VAB代码实现)

EXCEL表格不能修改怎么办,如何撤销保护?

excel表格被保护该怎么取消不知道密码?

在excel中如何取消工作表的保护命令