我在工作簿(Excel电子表格)中有大约25个工作表。 有没有一种方法可以在单击一个按钮时保护所有25个工作表?或者这个功能不可用,我必须编写VBA代码来完成此操作。我经常需要保护所有工作表和取消保护所有工作表,逐个进行是耗时的。
我认为没有不使用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
您可以使用“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
不要认为有一个按钮可以完成它,但代码非常简单:
对于每个工作表,请使用以下代码来保护它: For Each protSheet In Worksheets protSheet.Protect Password := "boo" Next protSheet
您可以保护整个工作簿而不是每个工作表,这将防止在整个工作簿中进行更改。