【问题标题】:VBA excel macros: Run only from a locationVBA excel宏:仅从某个位置运行
【发布时间】:2017-12-16 15:29:10
【问题描述】:

我有一些带有宏的 Excel 工作表,我希望任何用户都能够仅从特定位置(在我的情况下为特定共享点)运行它们。 如果用户将 Excel 文件“另存为”到任何其他位置 - 他应该会收到一条错误消息。

我正在寻找将 VBA 脚本放入这些工作簿中以实现我的目标。

有人可以帮忙吗?

【问题讨论】:

  • 根据 SO 指南,这个问题是题外话:stackoverflow.com/help/on-topic。为了让我们提供帮助,我们需要能够查看导致问题的代码。
  • 抱歉 - 我是新来的,应该在发帖前熟悉指南。

标签: vba excel


【解决方案1】:

如果有人想将其保存到另一个位置,您可以在那里显示错误消息并将Cancel 参数设置为 true。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If Not ThisWorkbook.Path Like "//sharepoint/path/*" Then
    MsgBox "You can't save the excel", vbCritical
    Cancel = True
End if

End Sub

如果工作簿在正确的位置打开,您可以通过同样的方式检查 Workbook_Open 函数:

Private Sub Workbook_Open()

If ThisWorkbook.Path Like "//sharepoint/path/*" Then
    'Do things
Else
    'Error message and close
End If

End Sub

【讨论】:

  • 嗨,我并不是要阻止保存 excel。我正在尝试仅从共享点运行宏而不是其他任何地方。
  • 我编辑了我的答案。我希望我明白你想要什么。老实说,我不了解 Sharepoint,但工作簿的路径应该是来自 Sharepoint 的 URL,所以我认为您可以检查一下。
  • 谢谢 Wernerson - 这回答了我的问题。非常感谢。
  • 很高兴为您提供帮助。您能否将答案标记为已接受,以便其他人看到它对您有用:)
猜你喜欢
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多