控制“只读或通知”Excel中的警报

我有一个Excel文件,在VBA中的几个function。 其中之一就是在某些方面节省一些背景。 对于这个问题,文件必须能够写入,换句话说,如果文件以只读方式打开,文件不能也不应该运行。

因此,我的问题是:我可以和如何控制只读(或通知)警报消息,以便文件一旦打开,就可以警告(msgbox或form)文件已打开,但不能进一步(如完全作为只读开放)?

有一些例子来说明如何从另一个文件中检查文件是否被打开。 这种情况下,文件必须检查它自己,如果打开,我怀疑,将呈现在一个循环。 如果文件仍然可以检索打开文件的用户(如原来的警告),那就太好了。

谢谢!

您可以在Workbook_Open()事件中进行检查,如下所示:

 Private Sub Workbook_Open() If ThisWorkbook.ReadOnly = True Then MsgBox "File in use by: " & CreateObject("ADsSecurityUtility").GetSecurityDescriptor(ThisWorkbook.FullName, 1, 1).Owner & _ vbCrLf & vbCrLf & _ "Please re-open this workbook when available for write access.", vbOkOnly + vbInformation, "File Locked" ThisWorkbook.Close SaveChanges:=False '// close if read only End If End Sub