Я работаю с макросом для копирования данных между листами в нескольких папках.Для этого примера это файл
\ network_drive \ Locations \ site \ network_scans \ year \ Month \ results.xlsx
Я пытаюсь скопировать таблицу из этого файлав другую рабочую книгу на две папки вверх.В этом случае
\ network_drive \ Locations \ site \ network_scans \ Template.xlsx
Я делаю это с абсолютным путем:
Sheets("Chart Data").Select
Selection.Copy
Workbooks.Open Filename:= _
"\\network_drive\Locations\site\network_scans\Template.xlsx"
Range("A20").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Мне это нужно для нескольких местоположений и сайтов (то есть сайт 1, сайт 2, сайт 3 и т. Д.).Я пытаюсь сделать путь относительным.Если бы я делал это вручную, я бы использовал cd ../../ и затем открыл Template.xlsx.
Как ссылаться на относительные пути в VBA?
РЕДАКТИРОВАТЬ
Я думаю, что получил синтаксис, но теперь он генерирует
Ошибка времени выполнения '1004'
Извините, мы не смогли найти C: \ Users \ USER \ AppData \ Roaming \ Excel \ XLSTART Scan Reports \ filename.xlsx.Возможно ли его переместить, переименовать или удалить?
Sheets("Chart Data").Select
Selection.Copy
Workbooks.Open CStr(ThisWorkbook.Path) & "\..\..\..\network_scans\Template.xlsx"
Range("A20").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
End Sub
SNIP
Он обращается к файлу так, как если бы он находился на диске C, а не на сетевом диске.Любые мысли о том, как заставить его видеть это как сетевой путь вместо локального?