作者:Excel Home 来源:《Excel实战技巧精粹》
发表于:2008年9月26日
在实际工作中,用户常常需要把重要的工作表进行保护,以防止工作表内容被意外更改。如果在保护工作表的同时,又希望对工作表中的数据使用自动筛选功能以便进行一些数据分析工作,则需要进行一些设置。以图131?1所示的工作表为例。
图131?1 原始表格
131?1 Excel 2002及以上版本
从Excel 2002开始,工作表保护功能中允许用户设置在保护工作表的同时所允许进行的部分操作类型,其中就包括自动筛选。
选中A1:C17中的任意单元格。
单击菜单“数据”→“筛选”→“自动筛选”,使表格进入自动筛选模式。
单击菜单“工具”→“保护”→“保护工作表”,在“保护工作表”对话框的“允许此工作表的所有用户进行”列表框中,勾选“使用自动筛选”选项,如图131?2所示。
图131?2 在“保护工作表”对话框中勾选“使用自动筛选”选项
如果需要,可以在“取消工作表保护时使用的密码”文本框中输入保护工作表的密码,最后单击“确定”,关闭“保护工作表”对话框。
现在,虽然工作表处于受保护状态,不能对任何单元格进行修改,但仍然可以使用“自动筛选”功能,如图131?3所示。
图131?3 受保护的工作表仍然可以使用“自动筛选”功能
注意:
步骤2与步骤3的操作顺序一定不能颠倒,即用户必须在保护工作表以前就让数据区域或列表进入自动筛选模式。否则,如果先执行保护工作表命令,则无法开启或关闭自动筛选模式,“自动筛选”命令也将是灰色的。
131?2 Excel 2000及更低版本
在Excel 2000或更低版本中,保护工作表功能没有提供与自动筛选相关的设置,但是用户仍然可以借助宏代码来进行设置。假设数据保存在Sheet1中。
选中A1:C17中的任意单元格。
单击菜单“数据”→“筛选”→“自动筛选”,使表格进入自动筛选模式。
按<Alt+F11>打开VBA编辑器窗口,按<Ctrl+R>组合键显示工程资源管理器窗口,双击其中的ThisWorkbook,在右边的代码窗口中输入以下代码:
Private Sub Workbook_Open()
Worksheets(“sheet1″).Protect Password:=”pwd”, userInter Faceonly:=True
Worksheets(“sheet1”).EnableAutoFilter = True
End Sub
保存并关闭工作簿文件。
当再次打开工作簿文件时,工作表Sheet1将被保护,但是自动筛选功能仍然可用。用户可以根据自己的需要,修改上述代码中的工作表名称与密码(pwd)。
与在Excel 2002及以上版本中相似,用户必须先让数据表进入自动筛选模式,再运行宏代码执行工作表保护。