如何通过单击保护Excel工作簿中的所有工作表?

时间:2008-10-10 13:58:39

标签: excel excel-vba vba

我的工作簿中有大约25个工作表(Excel电子表格)。 有没有办法可以一键保护所有25个工作表?或者此功能不可用,我将不得不编写一个VBA代码来完成此任务。我经常需要保护所有纸张并取消所有纸张的保护,单独进行操作非常耗时

4 个答案:

答案 0 :(得分:14)

我不相信没有使用VBA就可以做到这一点。如果您对VBA解决方案感兴趣,请输入以下代码:

Dim ws as Worksheet
Dim pwd as String

pwd = "" ' Put your password here
For Each ws In Worksheets
    ws.Protect Password:=pwd
Next ws

取消保护实际上是一样的:

Dim ws as Worksheet
Dim pwd as String

pwd = "" ' Put your password here
For Each ws In Worksheets
    ws.Unprotect Password:=pwd
Next ws

答案 1 :(得分:3)

不要认为有一个按钮可以做到这一点,但代码很简单:

对于工作表中的每个protSheet   protSheet.Protect密码:=“boo” 下一个protSheet

答案 2 :(得分:3)

您可以保护所有工作表免受用户更改但仍允许VBA脚本使用" UserInterfaceOnly"进行更改。选项。此解决方法允许您在工作表上运行任何VBA脚本,而无需每次都保护和取消保护:

Dim ws as Worksheet
Dim pwd as String

pwd = "" ' Put your password here
or Each ws In Worksheets
   ws.Protect Password:=pwd, UserInterfaceOnly:=True
Next ws

Unprotecting与Ben Hoffstein提供的解决方案相同:

Dim ws as Worksheet
Dim pwd as String

pwd = "" ' Put your password here
For Each ws In Worksheets
    ws.Unprotect Password:=pwd
Next ws

您可以使用按钮/快捷方式访问此宏。在Excel 2010中,右键单击快速访问工具栏,然后选择"自定义快速访问工具栏"。在下拉菜单中选择命令,选择"宏"。然后单击您创建的VBA脚本以保护(或取消保护)。最后点击"添加> >"按钮,然后"确定"保存它。

答案 3 :(得分:1)

您可以保护工作簿而不是每张工作表,这将阻止在整个工作簿中进行的更改