我的工作簿中有大约25个工作表(Excel电子表格)。 有没有办法可以一键保护所有25个工作表?或者此功能不可用,我将不得不编写一个VBA代码来完成此任务。我经常需要保护所有纸张并取消所有纸张的保护,单独进行操作非常耗时
答案 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)
您可以保护工作簿而不是每张工作表,这将阻止在整个工作簿中进行的更改