Я открываю книгу, хранящуюся на моем локальном компьютере 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)
Любая помощь будет принята с благодарностью.
Заранее спасибо.