excel - 防止打开保存在特定位置的 Excel 工作簿
问题描述
如果从保存工作簿的位置打开工作簿,我试图阻止授权用户以外的用户打开工作簿。我想要的是用户将工作簿复制到另一个位置然后打开它。我已将下面的代码用于 Access 数据库,但我不确定如何将其用于 Excel。有人可以帮忙吗?
Option Compare Database
Private Function AutoExec()
' Use Macro to run code and use the AutoExec() name
If VBA.InStr(1, CurrentDb.Name, "G:\") _
Or VBA.InStr(1, CurrentDb.Name, "\\NetWorkLocation\") Then
Select Case VBA.StrConv(VBA.Environ("username"), vbLowerCase)
Case "username1", "username2", "username3"
Case Else
VBA.MsgBox "Copy and paste this database to your desktop." _
& vbCrLf & "You may not open it from this location."
DoCmd.CloseDatabase
End Select
End If
End Function
解决方案
如果将其放入要限制访问ThisWorkbook
的工作簿的模块中,它应该可以工作。
Private Sub Workbook_Open()
If InStr(ThisWorkbook.path, "G:\") > 0 _
Or InStr(ThisWorkbook.path, "\\NetWorkLocation\") > 0 Then
Select Case LCase(Environ("username"))
Case "username1", "username2", "username3"
Case Else
MsgBox "Copy and paste this spreadsheet to your desktop." & _
vbCrLf & "You may not open it from this location."
ThisWorkbook.Close savechanges:=False
End Select
End If
End Sub
推荐阅读
- ruby-on-rails - 通过 Concern 建立两个模型之间的关系
- java - 如何找到正在打印 StackTrace 的位置?
- css - 如果整个页面变得固定,我如何在中间制作一个元素
- flask-sqlalchemy - 在 SQLAlchemy 数据库中创建多对多关系时的问题
- ray - ray[tune] 在哪里记录 `python-core-worker-*.log` 文件?
- string - 将字符串转换为两个字符并将两个字符反转
- r - 有没有办法在 R 中创建包含条件值的新 var?
- wordpress - 父页面与 Post_Type 具有相同永久链接的子页面
- flutter - URI 的目标不存在:'package:velocity_x/velocity_x.dart'
- typescript - 在 Ionic 3 上使用 MapQuest 方向路由时出现运行时异常