从精明的用户保护Excel工作表数据

我正在创build一个将分发给我的同事的Excel应用程序。 基于权限我需要禁止访问某些表和function。 我已经能够保护和隐藏工作表,但是精明的用户能够在内部或外部遍历隐藏的工作表来公开数据。 我需要阻止这一点。

过程如下:

当工作簿打开对远程数据库的查询时,返回设置的用户权限。 然后,这些权限被打印到名为“PERMISSIONS”的工作表中。

在这里输入图像说明

下面的代码通过传递列名来遍历工作表权限来查找特定的设置。

CheckPerm "Timesheet" Public Function CheckPerm(nPermColTarget As String) As Boolean Dim Counter As Integer Dim x As Integer Dim y As Integer Counter = 3 Do Until Sheet7.Cells(Counter, 1).Value = Associate_Name Counter = Counter + 1 Loop y = Counter Counter = 2 Do Until Sheet7.Cells(2, Counter).Value = nPermColTarget Counter = Counter + 1 Loop x = Counter If Sheet7.Cells(y, x).Value = "ON" Then CheckPerm = True GrntDenySheetAccess nPermColTarget, y, x, CheckPerm Else ' "OFF" CheckPerm = False GrntDenySheetAccess nPermColTarget, y, x, CheckPerm End If End Function Private Sub GrntDenySheetAccess(nPermColTarget As String, y As Integer, _ x As Integer, CheckPerm As Boolean) Select Case nPermColTarget ' Sheet1 Case "Timesheet" If CheckPerm = True Then Sheet1.Unprotect "pass" Sheet1.Visible = xlSheetVisible End If If CheckPerm = False Then Sheet1.Protect "pass" Sheet1.Visible = xlSheetVeryHidden End If End Select End Sub 

但即使sheet1被隐藏和保护,我仍然可以遍历隐藏的sheet1的内容来访问信息。 无论如何要停止?

谢谢

没有任何方法可以安全地保护对Excel工作簿中的任何内容的访问。 Excel版本2007及以后版本的密码难以破解,但用户只需将工作簿保存为.xls文件,然后就很容易破解。

你所能做的最好的事情就是让有些人更难以进入。 密码保护您的文件,并设置您不希望它们到达xlSheetVeryHidden任何表单,这样可以防止用户通过Excel用户界面来xlSheetVeryHidden表单。

您提问的评论者是正确的。 如果你想要一个安全的应用程序,Excel不是答案。

在这里输入图像说明

话虽如此,如果您在数据库层中强制执行安全性,则Excel将成为一个非常棒的用户界面。 只要确保不要存储或检索用户不应该看到的数据。