none
Как получить имя пользователя office, который открыл файл exel? RRS feed

  • Вопрос

  • в VBScript пытаюсь создать подключение к excel файлу. но эта книга лежит на сервере, иногда эта книга бывает занята другим пользователем. как я могу получить имя пользователя  кто занял данную таблицу? уведомление во вложении. Имя пользователя как зарегистрирован в office

    я могу читать данные о пользователях через aplication.userstatus.  но для этого она должна быть открыта для редактирования нескольким пользователям. Как можно узнать кем занята книга для редактирования 

    19 июня 2018 г. 10:28

Все ответы

  • https://social.technet.microsoft.com/Forums/getfile/1284111

    https://social.technet.microsoft.com/Forums/getfile/1284113

    во вложении изображении скриншоты что я хочу видеть

    • Изменено marat1905 19 июня 2018 г. 10:30
    19 июня 2018 г. 10:29
  • Для загрузки скриншотов, используйте раздел Q9 статьи.

    По данным вами ссылкам, результат един:


    Да, я Жук, три пары лапок и фасеточные глаза :))

    19 июня 2018 г. 11:36
    Модератор
  • https://1drv.ms/u/s!AkzJULR6uSZ-acp6wBM-Y_GXyow

    https://1drv.ms/u/s!AkzJULR6uSZ-auBPeqITIncsOe0

    19 июня 2018 г. 18:24
  • https://1drv.ms/u/s!AkzJULR6uSZ-acp6wBM-Y_GXyow

    https://1drv.ms/u/s!AkzJULR6uSZ-auBPeqITIncsOe0

    во вложении изображении скриншоты что я хочу видеть

    19 июня 2018 г. 18:25
  • эмнип если файл занят вы его все равно можете открыть в режиме только-для-чтения

    The opinion expressed by me is not an official position of Microsoft

    19 июня 2018 г. 19:01
    Модератор
  • прочтите пожалуйста в начале. что я писал. я хочу в vb получить имя пользователя кто открыл для редактирования файл.
    • Изменено marat1905 19 июня 2018 г. 19:34
    19 июня 2018 г. 19:33
  • что будет если открыть файл и посмотреть пользователей которые открыли файл? я прочел что вы можете получить список пользюков, но только после того как откроете, а открыть вы не можете потому что файл занят, и именно на последнее я вам и дал предположительный ответ

    и еще тут описан воркераунд по вашей теме. и еще одно похожее обсуждение


    The opinion expressed by me is not an official position of Microsoft

    19 июня 2018 г. 20:35
    Модератор
  • файл открывается только для чтения. и я не могу узнать кто открыл файл для редактирования. только в начале говорит что занят файл. и каким пользователем. я как понимаю создается файл пользователя с префиксом ~$ и там можно как то узнать кто открыл файл для редактирования.Если верно, то подскажите где в этом файле я могу узнать имя пользователя
    20 июня 2018 г. 4:01
  • Выполните и напишите ваш результат:

    На вкладке Правка в списке Файл открыт следующими пользователями просмотрите имена пользователей.


    Да, я Жук, три пары лапок и фасеточные глаза :))

    20 июня 2018 г. 4:51
    Модератор
  • Выполните и напишите ваш результат:

    На вкладке Правка в списке Файл открыт следующими пользователями просмотрите имена пользователей.


    Да, я Жук, три пары лапок и фасеточные глаза :))

    насколько я понимаю нужно тоже самое но на vb

    The opinion expressed by me is not an official position of Microsoft

    20 июня 2018 г. 5:32
    Модератор
  • Он открывает файл через устаревшие "Общие книги" размещённую в сети предприятия, но файл у него открывается в режиме "Только для чтения" и он не видит кто из пользователей открыл файл. Для решения этой задачи, он возможно пишет в VBA код выполняющий задачу:

    "Если при попытке открыть файл, файл можно открыть только в режиме "Только для чтения", VBA выводит окно "Файл занят пользователем: Имярек", в противном случае открыть файл на редактирование."

    Допускаю, что ему необходим "UserName" или его аналог для VBA.


    Да, я Жук, три пары лапок и фасеточные глаза :))

    20 июня 2018 г. 6:10
    Модератор
  • да мне нужно это. как можно реализовать?
    20 июня 2018 г. 8:12
  • да мне нужно это. как можно реализовать?

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

    Да, я Жук, три пары лапок и фасеточные глаза :))

    20 июня 2018 г. 8:43
    Модератор
  • Вы имеете ввиду рецензирование- общий доступ-вкладка правка https://1drv.ms/u/s!AkzJULR6uSZ-a6l4giHF-3ynH8Y. это на том компе где открыт файл, а на другом компе с которого я пытаюсь отрыть повторно доступ книге заблокирован. выходит уведомление редактирование запрещено. пользователем.
    • Изменено marat1905 20 июня 2018 г. 11:02
    20 июня 2018 г. 11:00
  • Внимательно изучите статью "Общие книги", ссылку на которую я вам дал ранее. В ней пошагово в девять шагов, написано как создавать и работать с Общей книгой. Также внимательно изучите "Дополнительные сведения".

    По вашему скриншоту, файл не является Общей книгой и открыт в монопольном режиме:

    Дополните, что у вас имеется уже сейчас, и что может ваш макрос.

    В дополнение, если бы вы внимательно прочитали статью и выполнили все рекомендации статьи, ссылку на которую вам дал ранее, то у вас был бы результат отображения всех пользователей открывших книгу на редактирование:

    и не нужно было бы создавать макрос, так как Общая книга открывается для редактирования у всех открывающих Общую книгу:

    При наличии Skype, вы также могли бы обмениваться мгновенными сообщениями с совместно работающими пользователями.


    Да, я Жук, три пары лапок и фасеточные глаза :))

    20 июня 2018 г. 11:24
    Модератор
  • так то я могу сделать в VB чтоб видеть какие пользователи подключены в общем доступе. черезuserstatus. но как сделать чтоб увидеть не включая книгу в общий доступ увидеть какой пользователь занял книгу. как прилагал скриншот. ранее, что запрещено редактирование так как занял пользователь такой то?
    20 июня 2018 г. 18:04
  • 1. Простым языком, - Монопольный режим предназначен для единоличного управления файлом, тем кто первый его открыл.

    2. Вы не ответили, что у вас за код VBA и что он конкретно уже может делать.

    3. Вы не ответили, нашли ли вы аналог "UserName" выводящий имя пользователя в Office, в VBA.


    Да, я Жук, три пары лапок и фасеточные глаза :))

    20 июня 2018 г. 20:04
    Модератор
  • https://msdn.microsoft.com/en-us/vba/excel-vba/articles/workbook-userstatus-property-excel?f=255&MSPPError=-2147217396

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

    21 июня 2018 г. 2:25
  • Разве?

    Код VBA приведённый вами в ссылке, макрос при запуске выводит результат в новой создаваемой макросом Книге:

    Вы будете удивлены, но макрос VBA на MSDN по данной вами ссылке выводит результат в Уведомлении Excel:


    Да, я Жук, три пары лапок и фасеточные глаза :))

    21 июня 2018 г. 4:32
    Модератор
  • вы будете удивлены но я это знаю. я пишу скрипт который записывает данные в книгу в определенное время. но иногда эта книга бывает занята каким то пользователем. я хочу чтоб когда не смог записать данные в книгу  скрипт отправит на почту сообщение что такой то индивид заня книгу
    21 июня 2018 г. 7:01
  • Для меня уже не осталось ничего для удивления, дополните:

    -почему вы сразу не дали ссылку на этот макрос MSDN;

    -почему вы не захотели делиться вашим результатом работы макроса;

    -почему вы пишите, что макрос у вас не работает.


    Да, я Жук, три пары лапок и фасеточные глаза :))



    21 июня 2018 г. 7:40
    Модератор
  • Добрый день,

    Возможно будет правильней отследить кто открыл файл через сессии на самом сервере, начните отсюда:

    https://blogs.technet.microsoft.com/heyscriptingguy/2005/02/16/how-can-i-list-open-sessions-and-open-files-on-a-computer/

    Powershell / WMI:

    https://isazonov.wordpress.com/2014/12/24/1150/

    21 июня 2018 г. 8:10
  • эта команда мне не выводит данные когда книга занята другим пользователем. мне нужна другая команда которая видит кем занята книга вернее читает уведомление . https://social.technet.microsoft.com/Forums/getfile/1284796

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


    • Изменено marat1905 21 июня 2018 г. 11:07
    21 июня 2018 г. 10:59
  • если я буду читать сессии он мне будет выдавать имя пользователя windows? И надо скорее всего админовские права на файловый сервер

    21 июня 2018 г. 11:02
  • Да, имя пользователя.  Права нужны.
    21 июня 2018 г. 11:06
  • это совсем не то. если попробовать открыть книгу на разных компах. в одном компе откроется для редактирование. на другом выйдет сообщение вроде этого

    https://social.technet.microsoft.com/Forums/getfile/1284796

    и вот мне нужно через скрипт узнать что открыт файл  пользователем такой то. а это имя пользователя прописывается  в office.

    Вот как можно вернуть имя пользователя скриптом? 


    https://1drv.ms/u/s!AkzJULR6uSZ-acp6wBM-Y_GXyow
    • Изменено marat1905 21 июня 2018 г. 11:16
    21 июня 2018 г. 11:13
  • завтра попробую
    21 июня 2018 г. 18:48