Excel允许您保护和取消保护工作表。当然,其目的是允许其他人使用您的工作簿,而不是修改每个工作表中的某些单元格。

由于保护是在工作表级别完成的,因此逐步浏览工作簿中的每个工作表并对其进行保护或取消保护可能会是一个很大的痛苦。如果您有25个工作表,则必须激活每个工作表,进行保护或取消保护,然后继续进行下一个工作表。

保护工作簿中每个工作表的一种较省时间的方法是使用宏来执行实际工作。以下宏可以解决问题:

Sub ProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String     Dim J As Integer

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Protect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

取消保护所有工作表的宏仅稍有不同:

Sub UnProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String     Dim J As Integer

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Unprotect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

尽管这些宏可以正常工作,但有一些警告。

首先,您需要确保将每个宏中的Password变量设置为工作表的正确密码。 (当然,这假定所有工作表都使用相同的http://username-password.com/14/what-makes-a-good-password[passwords]。)

第二个警告是,由于宏必须包含密码,因此您的工作簿的整体安全性可能会受到损害-任何可以显示宏的人都将知道您的工作簿的密码。

作为最后一个问题的解决方案,您可以修改宏,以便它们要求在工作中使用密码。以下是用于保护工作表的宏的版本:

Sub ProtectAllSheetsPass()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String     Dim J As Integer     Dim sPWord As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

sPWord = InputBox("What password?", "Protect All")

If sPWord > "" Then         For Each ws In Worksheets             ws.Select             ws.Protect Password:=sPWord         Next ws     End If     Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

宏将显示一个输入框,要求输入密码。然后使用相同的密码保护工作簿中的每个工作表。可以对取消保护所有工作表的宏进行相同的更改。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2275)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: