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

我的工作簿中有大约25张工作表(Excel电子表格)。 有没有一种方法可以保护所有25个单击工作表? 或此function不可用,我将不得不写一个VBA代码来完成这一点。 我经常需要保护所有的床单,取消所有床单的保护,而且每个人都需要花费很多时间

我不相信有没有办法做到这一点,而不使用VBA。 如果您对VBA解决scheme感兴趣,请使用以下代码:

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 

不要以为有一个button就可以,但是代码很简单:

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

您可以保护工作簿而不是每个工作表,这将停止整个工作簿中的更改

您可以保护所有工作表免受用户更改,但仍允许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 

不保护与Ben Hoffstein提供的解决scheme相同:

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

您可以使用button/快捷方式访问此macros。 在Excel 2010中,右键单击快速访问工具栏,然后select“自定义快速访问工具栏”。 在下拉菜单中select命令,select“macros”。 然后单击您创build的VBA脚本来保护(或取消保护)。 最后点击“添加>>”button,然后点击“确定”保存。