这在 Excel 中可以实现吗?(VBA)

这在 Excel 中可以实现吗?(VBA)

我想创建一个 VBA 宏来执行以下操作:

仅当从 Windows 目录中的某个文件夹打开文件时,才会打开带有宏的 Excel 文件。

如果没有从指定文件夹打开,则需要显示错误消息框并自动关闭文件。

我们使用的文件已经完全安全,但用户仍然可以将其从现有文件夹复制到桌面,例如,我们想通过仅接受从特定目录打开文件来阻止他们使用旧版本。我尝试在互联网上寻找解决方案,但没有找到。


  • 从中打开包含快捷方式。

  • 它是一个公司文件,但在我们的环境中使用了宏。

  • 我需要可以编辑文件夹名称的代码,将其改为我想要的任何名称(这样我们以后就可以随时更改它)

答案1

将其放入本工作簿在 VBA 编辑器中:

Private Sub workbook_open()

Dim strPath As String
strPath = "c:\username\path\to\workbook"

If Not Application.ActiveWorkbook.Path = strPath Then
    MsgBox ("This is an old version, please use the correct version at " & strPath)
    Application.ActiveWorkbook.Close
End If

End Sub

只需更改strPath为您想要使用的路径即可。如果您觉得有必要,也可以将其替换ActiveWorkbook为。ThisWorkbook

如果它位于网络共享上,请务必测试它能.path给您带来什么,因为它可能会用驱动器号替换网络位置,而驱动器号可能会因用户而异。

相关内容