托德开发了一个供他人使用的工作簿。为了防止数据被破坏,他保护了工作表和工作簿。问题是,Todd有时在进行更改后会忘记保护工作表和工作簿。他想知道是否存在创建可视指示器的方法,该指示器可以显示工作表/工作簿当前是受保护的还是不受保护的。

当然,检查是否受到保护的最简单方法就是开始查看可用的菜单选项。如果存在所有选择范围,则工作表和工作簿将不受保护。如果有重要部分不可用(“灰显”),则保护功能已打开。

另一个简单的解决方案是创建一个用户定义的函数,该函数返回一个指示工作簿或工作表是否受保护的值。以下将达到目的:

Function WksProtected(rng As Range) As String     Application.Volatile     If rng.Parent.ProtectContents Then         WksProtected = "Protected"

Else         WksProtected = "Not Protected"

End If End Function
Function WkbProtected(rng As Range) As String     Application.Volatile     If rng.Parent.Parent.ProtectStructure Then         WkbProtected = "Protected"

Else         WkbProtected = "Not Protected"

End If End Function

要使用宏,只需在工作表中的任何地方包括以下公式即可:

=WksProtected(A1)

=WkbProtected(A1)

公式的结果为“受保护”或“不受保护”,

取决于工作表和工作簿的状态。您可以使用条件格式来根据函数返回的内容突出显示单元格。

注意:

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

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

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