如果已经打开,请通过双击防止重新打开工作簿

时间:2016-08-05 08:30:56

标签: excel vba excel-vba macros

我想阻止打开已经打开的工作簿。 我的工作簿包含VBA用户表单。

重新打开工作簿的事件是通过双击存储在特定位置的工作簿图标并且之前打开并运行VBA用户表单来触发的。

我尝试过以下代码,但这并没有帮助我阻止重新开启。

Private Sub Workbook_Open()
    If ThisWorkbook.IsInplace = True Then
        MsgBox "Workbook Already Open"
        ThisWorkbook.Close (False)
    Else
        MsgBox "Single Instance Open"
    End If
End Sub

预期输出: 当我在文件已经打开的情况下双击excel文件时,它应该没有理想的做任何事情(或者它可以覆盖工作簿)

实际输出: 当我在文件已经打开的情况下双击excel文件时,它会弹出对话框“文件已经打开,重新打开文件将丢弃更改”,带有yes,no和cancel选项。

1 个答案:

答案 0 :(得分:2)

  

实际输出:当文件已经打开时双击excel文件,然后会弹出对话框“文件已经打开,文件重新打开会丢弃更改”,带有yes,no和cancel选项。

这是默认行为,AFAIK无法更改。并且它不应该。至少通过这种方式,您知道工作簿已经打开,并且您可以选择{strong>点击 No。如果您仍然点击Yes,那么尽管有警报,但您不能责怪系统。你能? ;)

想象一下,如果你确实设法获得了你想要的东西,那么如果用户不知道你做了什么,就会认为鼠标不工作或者Excel应用程序有问题。为什么要让事情变得复杂?