(VBA) Открыть книгу с сетевого диска - PullRequest
0 голосов
/ 17 мая 2018

Я столкнулся с проблемой, связанной с функцией workbook.open, при попытке открыть книгу, расположенную в сетевой папке.Макрос VBA приводит к

"Ошибка 1004"

без особых причин, только то, что путь к файлу недоступен.

У меня естьочень долго использовал Google и это сообщество, чтобы решить эту проблему, ниже моих шагов, которые я попробовал, и мое единственное решение в конце.У меня такой вопрос: ПОЧЕМУ Excel ведет себя так и что я могу сделать в следующий раз?

  • Сначала пользователь вводит путь к файлу в ячейке внутри Исходной рабочей книги, сохраненной локально накомпьютер.Код VBA принимает входные данные ячейки (я пробовал Range ("K4"), а также Range ("K4"). Value) и выравнивает его по строке, которая видна (Variable Watch при отладке), но завершается ошибкой, когда она появляется.к функции Workbook.open.

  • Я пытался использовать пользовательский сетевой путь (например, «G: / ...»), но также и универсальный сетевой путь («\\»)xxx.xxx ... "), что является более точным, поскольку не каждый пользователь сопоставил сетевую папку с одной и той же буквой диска.

  • В конце мое единственное рабочее решение было жестко закодированопуть в редакторе VBA с UNC-путем.

Почему так?В этом случае сетевой путь не изменяется, но когда наступит момент, когда необходимо, чтобы папка была записана в ячейку, я потерялся.

Спасибо за ваш сборщик!

РЕДАКТИРОВАТЬ: в основном это код ... Я удалил ненужные части ...

'Variablen
Dim MA$, Monat$, Fehltag$, Ort$, Projekt$, FilePlanung$, MainString$, NeuerString$
Dim LastRowM&, StartZelleP&, ProjektP&
Dim wb, wbP As Workbook
Dim wsK, wsS, wsM As Worksheet
Dim StartDatumM As Date
Dim array_monate As Variant

'Arbeitsblätter
Set wb = ThisWorkbook
Set wsK = wb.Sheets("Kopfblatt")
Set wsS = wb.Sheets("Stammdaten")
Set wsM = wb.ActiveSheet

'Fix
MA = wsK.Range("D2")
Monat = wsM.Name
FilePlanung = wsS.Range("K4")

Application.ScreenUpdating = False
Set wbP = Workbooks.Open(fileName:=FilePlanung)
'Set wbP = Workbooks.Open(FilePlanung) --> Tried also this and many other ways...
Set wsP = wbP.Sheets("aktuell")

1 Ответ

0 голосов
/ 18 мая 2018

Это код, который я использую:

Dim wb As Workbook

Set wb = Workbooks.Open(Worksheets("Sheet1").Range("A1").Value)
...