我正在尝试制作一个受密码保护的工作簿(称为数据库工作簿),该工作簿只能通过其他工作簿中的宏进行编辑。问题是当两个用户单击同时编辑文档的按钮时。
我有一个宏,如果数据库工作簿没有密码保护,则该宏可以完美地工作。宏打开数据库,然后检查是否以只读方式打开。如果数据库以只读方式打开,则宏将等待,然后尝试再次打开数据库。但是如果数据库工作簿没有密码保护,则有人说用户1可以手动打开它,然后当用户2按下按钮并运行宏时,他们将陷入循环中,等待用户1退出。
sub Run()
OpenFile:
Set Database = Workbooks.Open(FileName:="Data Base Workbook File Name", password:="password")
'Check to see if file is already open
If Database.ReadOnly Then
Database.Close
Application.Wait (Now + TimeValue("0:00:01"))
GoTo OpenFile
End If
Set Data = Database.sheets("Data")
'Do stuff
End Sub
如果我在文档受密码保护并且两个用户同时运行它的情况下尝试使用此宏,则一个用户可以正确打开文件,而另一个要求输入密码。非常奇怪,没有错误,只是打开数据库工作簿而不输入其中一个用户的密码。