在平时的工作中,我们经常要把一些文档交给员工进行登记或核对,比如登记或核对员工地址、联系电话、身份证等信息。对于类似这种保存隐私信息的文档,为了防止员工在编辑文档时看到其他员工的信息,可以为特定的单元格设置保护密码,确保用户只能查看指定的内容(图1)。
首先新建一个名称为“辅助表”的新工作表,按提示输入员工的地址、电话号码等信息。定位到靠后的某个空白单元格(如B12),建立一个分配给每名员工的打开密码的列表(图2)。
再新建一个名为“初始表”的新表,内容按照图1的格式输入表头数据,定位到C2并输入公式“=IF($A2=辅助表!$C13,辅助表!B2,"")”,向下向右填充到C5、D6单元格(图3)。
公式解释:这里使用IF函数进行判断来显示数据,当在A2的数据输入符合辅助表中对应的密码字符即C13数值,此时在C2单元格显示辅助表B2的数据(即张三的地址信息),其他类推;否则C2单元格就显示空白。这里注意“$A2”、“$C13”使用列相对引用,这样下拉后依次引用A2→A4、C13→C17的单元格。
同上,继续新建一个名为“订正表”的新表,定位到B2并输入公式“=IF(初始表!F2<>0,初始表!F2,辅助表!B2)”,向下向右填充公式。公式表示当初始表中的F2数据不为0(即张三地址信息进行修改时),那么B2就显示修改后的数值,否则显示原来辅助表B2的原始地址信息数据,这样员工修改后的信息数据会自动同步到该表中(图4)。
完成上述设置后切换到“初始表”,选中F2:G5,右击选择“设置单元格格式→保护”,去除“锁定”的勾选,这样在开启工作表和工作簿保护后,就仅有这些单元格可以录入编辑数据。同上,选中A2:A5也执行类似操作(图5)。
切换到“审阅→保护工作表”,勾选“选定解除锁定的单元格”,点击“确定”输入保护密码,再次输入确认密码,完成工作表的保护。这样整个工作表就只能在上述未锁定的单元格中输入内容(图6)。
在工作簿底部的表列表中,按Ctrl键选中“订正表”和“辅助表”,右击选择“隐藏”。点击“审阅→保护工作簿”,按提示设置保护密码(密码建议设置成和保护工作表的一致,方便记忆),这里一定要记住这个密码,否则后续操作无法打开隐藏的工作表提取数据了。这样两个表就被自动隐藏起来了,避免其他用户查看到在“辅助表”中设置的密码。没有工作簿保护密码无法取消隐藏。
由于默认每位员工输入密码并编辑完成文档后,当前操作员工输入密码会保存在A列。为了防止下一位操作员工查看到上次编辑员工的密码,可以在文档中添加一个宏来清除A列显示的密码。先启用Excle宏信任,切换到“初始表”后按“Alt + F11”进入ExcelVBA环境,双击“ThisWorkbook”,在弹出的窗口中从对象下拉框中选择“WorkBook”,在类型下拉列表框中选择“Open”,然后输入下列的代码生成一个宏。这个宏的作用是用户每次重新打开该文档后,A2:A5的数据都会被自动清空。完成后保存为.xlms文档(图7)。
Sub wordkbook_open()
Range("A2:A5").Select
Selection.ClearContents
Range("A2").Select
End Sub
现在我们就可以根据“辅助表”中设置的密码,将上述文档发给每位员工,员工打开该文档后,他们就只有在A列输入我们提供的密码才可以看到自己的数据信息,并且只能在F、G列进行修改,没有对应的密码,当前操作者是无法看到其他员工的相关信息的(图8)。
每位员工修改的信息会自动同步到订正表中,该表被隐藏,其他员工也无法查看。而且每次将文档发给另外另一个员工打开后,上一位员工保存的密码会自动清零,这样每个打开文档编辑的员工都无法看到其他人的信息数据。完成所有核对工作后,制作者只要点击“审阅→取消保护工作簿”,输入上述密码后取消保护,然后将隐藏“订正表”取消隐藏,将其中的数据提取出来即可。
有话要说...