Открыть книгу из сети в локальный Excel - PullRequest
0 голосов
/ 02 марта 2020

Я открываю книгу, хранящуюся на моем локальном компьютере P C (Мои документы), из книги, хранящейся в общем сетевом ресурсе, через пользовательский пользовательский интерфейс VBA. Это работает без проблем для меня, но не для других. Я знаю, что это проблема привилегий, однако мой P C находится в домене, и у меня нет административных привилегий, чтобы иметь возможность совместно использовать папку на моем P C, чтобы другие могли получить к ней доступ при запуске кода VBA. У кого-нибудь есть обходные пути, без необходимости хранить локальную книгу на сетевом ресурсе?

Функция VBA, которая открывает книгу из книги, хранящейся на сетевом ресурсе ...

Public Function INDIRECTVBA(wbPath As String, wsName As String, rng As String) As Variant
' Check if Timesheet.xlsm workbook is open. If not then create new excel instance and open workbook.
    If Not FileInUse(wbPath) Then
        Set excelApp = New Excel.Application: excelApp.Visible = False: Set wb = excelApp.Workbooks.Open(wbPath)
    Else
        Set excelApp = GetObject(wbPath).Application: Set wb = excelApp.Workbooks("Timesheet.xlsm")
    End If

    INDIRECTVBA = wb.Worksheets(wsName).Range(rng).Value2

End Function

Эта функция вызывается из формулы ...

=VALUE(IF(MONTH(TODAY())=SHEET(SUBSTITUTE(RIGHT(SUBSTITUTE(CELL("Filename",$FZZ$999999),"]",REPT("?",999)),999),"?",""))-1, IF(DAY(TODAY())>E1,  INDIRECTVBA("\\des.grplnk.net\home\christian.coombes\My_Documents\TimeRecording\2020\Timesheet.xlsm",LEFT(SUBSTITUTE(RIGHT(SUBSTITUTE(CELL("Filename",$FZZ$999999),"]",REPT("?",999)),999),"?",""),3),"$F"&E1+1), 0), IF(MONTH(TODAY())>SHEET(SUBSTITUTE(RIGHT(SUBSTITUTE(CELL("Filename",$FZZ$999999),"]",REPT("?",999)),999),"?",""))-1, INDIRECTVBA("\\des.grplnk.net\home\christian.coombes\My_Documents\TimeRecording\2020\Timesheet.xlsm",LEFT(SUBSTITUTE(RIGHT(SUBSTITUTE(CELL("Filename",$FZZ$999999),"]",REPT("?",999)),999),"?",""),3),"$F"&E1+1), 0)))-SUM(E3:E4,E31:E39)

Любая помощь будет принята с благодарностью.

Заранее спасибо.

1 Ответ

0 голосов
/ 02 марта 2020

Процесс Excel имеет те же сетевые разрешения, что и пользователь, который его запускает.

Это означает, что если один из ваших коллег не сможет напрямую перейти в свою папку «Мои документы» и открыть нужный файл, их Excel также не сможет это сделать.

Вам необходимо либо:

1) найти способ поделиться своими папками в сети и предоставить разрешение другим пользователям, либо;

2) Загрузите документ, о котором идет речь, в общую общую сетевую папку, и сделайте ссылку на него оттуда.

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