如何创建一个 Excel 电子表格,通过仅对正确用户启用的按钮提供指向工作簿的链接?
Posted
技术标签:
【中文标题】如何创建一个 Excel 电子表格,通过仅对正确用户启用的按钮提供指向工作簿的链接?【英文标题】:How can I create an Excel spreadsheet which provides links to workbooks through buttons which are only enabled to the right user? 【发布时间】:2014-01-22 20:58:16 【问题描述】:如何创建一个 Excel 电子表格,使用仅对正确用户启用的按钮提供指向工作簿的链接?
我想创建一个索引页/电子表格/工作簿供多个用户使用,以便访问大量工作簿。我想灰显(禁用)或删除不允许用户访问的工作簿的按钮。
我不知道该怎么做,我阅读了 IRM。虽然它没有显示我如何使某些用户无法访问的按钮变灰(禁用)。
非常感谢大家的意见。
提前谢谢大家。
【问题讨论】:
什么是用来管理权限的?权限是在文件系统上设置的,还是在其他位置?有几种方法可以使用 VBA 来获取登录用户的 id - 例如:***.com/questions/677112/… @TimWilliams 我使用活动目录来更新管理权限的数据库。 【参考方案1】:首先,您需要使用密码保护您的工作簿并为您的用户/权限创建一个数据库,将数据库表设置为 VeryHidden xlSheetVeryHidden
。
数据库示例:
+----------+----------+----------+----------+
| Names | Allow |
+ +----------+----------+----------+
| | Button 1 | Button 2 | Button 3 |
+----------+----------+----------+----------+
| MrJones | 1 | 0 | 0 |
| Makah | 0 | 1 | 0 |
| Seesharp | 1 | 1 | 1 |
+----------+----------+----------+----------+
现在您可以创建一个 checkPermission 子程序来检查是否可以执行宏。
Function CheckPermission(byVal colIndex as Integer) As Boolean
Dim userName As String, allow As Integer
userName = Environ("USERNAME")
CheckPermission= WorksheetFunction.VLookup(userName, Sheets("DB").[A:D], colIndex, False)
End Function
最后你可以在所有宏中使用这段代码了。
Sub Button1()
If Not CheckPermission(2) Then
Exit Sub
End If
'Your code here!
End Sub
【讨论】:
以上是关于如何创建一个 Excel 电子表格,通过仅对正确用户启用的按钮提供指向工作簿的链接?的主要内容,如果未能解决你的问题,请参考以下文章