一般保护工作表采取的方法是用 EXCEL 菜单中的"保护"命令,有时候这还不够,比如一些机密文件要让某些使用者完全无法看到,但又需要他来操作工作簿中的其他表,应该怎么办呢?
此时可以打开 VBA 编辑器,打开"工程资源管理器",双击该工作表,现在出现的是设置该表的属性的编辑窗口,单击窗口左上的下拉列表框,选择 worksheet ,这时再从该窗口右上方的列表框中选择Active("激活"),这时自动显示如下的语句块:
Private Sub Worksheet_Activate()
If Application.InputBox("请输入操作权限密码:") = 1234 Then
Range("A1").Select
'select A1
Sheets("机密文档").Cells.Font.ColorIndex = 56
'这段程序,在你输入正确密码后,将该表所有文字转变为深灰色。
Else
MsgBox "密码错误,即将退出!"
Sheets("普通文档").Select
End If
End Sub
Private Sub Worksheet_Deactivate()
Sheets("机密文档").Cells.Font.ColorIndex = 2
' 使得此工作表在不被激活时,所有文字为白色
End Sub
机密文档的sheet 下的代码:
用上述方法选择工作表的Deactivate事件,输入以下代码:
Sheets("机密文档").Cells.Font.ColorIndex = 2
这段程序使得此工作表在不被激活时,所有文字为白色。然后,在第一个程序中的Range("A1").Select后插入一行,写入以下代码:ActiveSheet.Cells.Font.ColorIndex = 56
这段程序,在你输入正确密码后,将该表所有文字转变为深灰色。
Result:
1.输入密码前:所有的cell里的字体都是白色看不出来
2.输入密码后:框子里的字体都是深灰显示:
Discussion:
sheet 的显示隐藏可以根据此进行相应的字体cell,划线等一些sheet的操作完全隐藏。