如何用一次点击来保护Excel工作簿中的所有工作表?

7

我在工作簿(Excel电子表格)中有大约25个工作表。 有没有一种方法可以在单击一个按钮时保护所有25个工作表?或者这个功能不可用,我必须编写VBA代码来完成此操作。我经常需要保护所有工作表和取消保护所有工作表,逐个进行是耗时的。

4个回答

16

我认为没有不使用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

3

您可以使用“UserInterfaceOnly”选项保护所有工作表免受用户更改,但仍然允许VBA脚本进行更改。这个解决方法可以让您在不必每次保护和取消保护工作表的情况下运行任何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

取消保护与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

不要认为有一个按钮可以完成它,但代码非常简单:

对于每个工作表,请使用以下代码来保护它: For Each protSheet In Worksheets protSheet.Protect Password := "boo" Next protSheet


1

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


这是一组非常不同的保护措施,不能解决问题。仅保护工作簿只能保护有关工作簿的某些功能(例如移动选项卡),它并不会像人们想象的那样在所有工作表上进行工作表保护 - 您需要单独保护工作表。如果您还想保护工作簿的某些部分,您可能还需要使用工作簿保护,但这是一个单独的考虑因素。 - psymann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接