Подождите, пока пользователь закончит использовать защищенную паролем книгу, прежде чем открывать - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь создать защищенную паролем рабочую книгу (назовите ее рабочей книгой базы данных), которая редактируется только с помощью макросов из других рабочих книг.Проблема в том, что два пользователя нажимают кнопку, которая редактирует документ одновременно.

У меня есть макрос, который отлично работает, если книга базы данных не защищена паролем.Макрос открывает базу данных, а затем проверяет, открыт ли он только для чтения.Если база данных открывается как только для чтения, макрос ожидает, а затем пытается снова открыть базу данных.но если книга базы данных не защищена паролем, кто-то скажет, что пользователь 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 

, если я попробую этот макрос, когда документ защищен паролем, и два пользователя запускают его одновременно, один пользователь правильно открывает файл, а другому предлагается ввести пароль.очень странно, что ошибки нет, просто открывает книгу базы данных без ввода пароля для одного из пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...