Форум программистов, компьютерный форум, киберфорум
Yana89
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Определение имени пользователя, у которого в данный момент открыт файл Excel

Запись от Yana89 размещена 27.09.2021 в 14:05

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

Я добавила функцию для проверки открытия файла.
Function FileIsBusy(File$) As Boolean
a = ""
Dim FN%: FN = FreeFile
On Error Resume Next
Open File For Random Access Write Lock Write As #FN
Close #FN
FileIsBusy = (Err <> 0)
End Function

Затем в основном макросе прописываю условие для вывода сообщения:
If FileIsBusy("Q:\Свод_ПБУ_2022.xlsx") = True Then
'a = CreateObject("wscript.network").UserName
'a = Environ("UserName")
'a = WMI_UserFullName
'a = Workbooks("Свод_ПБУ_2022.xlsx").UserStatus
'Set objSysInfo = CreateObject("ADSystemInfo")
'a = objSysInfo.UserName

MsgBox ("Файл занят пользователем ") & a
Exit Sub
End If

Но имя пользователя при любом из испробованных способов - моё. Если файл открыт у коллеги с её компьютера и учетной записи, я этого не вижу.
Как исправить данную ошибку. Испробовала все варианты. Определение пользователя переносила и в функцию, результат не меняется.
Размещено в Без категории
Показов 2182 Комментарии 2
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Аватар для Аватар
    Копнуть в сторону NetFileEnum
    Запись от Аватар размещена 28.09.2021 в 09:52 Аватар вне форума
  2. Старый комментарий
    Аватар для Аватар
    Накопал ссылку на пример на делфине. Но главное же идея )
    https://www.sql.ru/forum/16024... shego-fayl
    Запись от Аватар размещена 28.09.2021 в 10:51 Аватар вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.