数据表格中往往有部分数据是不能够对外展示的。
当某些列的数据不可以对外展示,但为了后续操作方便又不愿意删除时,你该怎么办?
是的,可以对表格进行加密。在Excel审阅里有一个保护工作的菜单选项。
它的解释是:通过限制其他用户的编辑能力来防止他们进行不必要的修改。
举个例子:我将D列隐藏后,点击保护工作表,然后将设置列格式取消勾选,输入密码。那么在没有密码的情况便不可以进行取消隐藏操作。
缺点:每次取消保护后,都需要重新进行保护工作表操作。
对于缺点的解决方法,利用VBA的Workbook_BeforeClose在点击关闭时让Excel自动加密。同样的,也可以利用Workbook_Open在表格打开时自动取消加密。
那么如果在加入Workbook_Open代码后,所有的电脑都可以自动取消加密,岂不是没有意义去保护工作表了。
所以,这里要介绍一下Environ(“Computername”)获取电脑设备名称。指定电脑设备打开时自动取消加密,这样就方便极了,也避免了忘记加密的尴尬。
Private Sub Workbook_Open()
Dim str As String
str = Environ("Computername")
If str = "DESKTOP-R4T82VD" Then
ActiveSheet.Unprotect Password:="123"
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Protect DrawingObjects:=False, _
Contents:=True, _
Scenarios:=False, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=False, _
AllowFormattingRows:=True, _
AllowInsertingColumns:=True, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=True, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True, _
Password:="123"
ActiveSheet.EnableSelection = xlNoRestrictions
End Sub