当您保护工作表时,Excel会阻止用户对工作表中的数据执行各种各样的任务。用户不再能做的事情之一就是对数据进行排序。如果您希望用户能够对数据进行排序,但仍保护工作表怎么办?

如果您使用的是Excel 2002或Excel 2003,则答案很简单:

这些版本的Excel允许您指定用户可以和不能使用受保护的工作表执行的操作。当您选择工具|保护|保护表,Excel将显示“保护表”对话框。对话框的底部是一长列复选框。您需要做的就是选择用户应该对工作表执行的操作。选项(您需要向下滚动一点)是“排序”。如果选择此选项,则用户可以对受保护的数据进行排序。

如果使用的是旧版Excel,解决方案是创建一个宏,该宏取消保护工作表,对数据进行排序,然后再次保护工作表。以下是一个简单的示例:

Sub Sorting()

ActiveSheet.Unprotect     Range("A1:D100").Sort Key1:=Range("A1"), _       Order1:=xlAscending, Header:=xlGuess, _       OrderCustom:=1, MatchCase:=False, _       Orientation:=xlTopToBottom     ActiveSheet.Protect End Sub

本示例根据A列的内容对A1:D100范围内的数据进行排序。宏说明了此方法的一般概念,但是您需要对其进行修改以反映数据和用户的需求。

如果使用宏路线,则需要将宏分配给工具栏按钮或菜单命令。否则,用户将永远无法使用它,因为在受保护的文档中禁用了“宏”菜单。

注意:

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

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

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