Рабочая проблема с относительным путем в Excel 2007 VBA - PullRequest
0 голосов
/ 15 июля 2009

Я работаю с Excel 2007, и следующее предложение с этого сайта не сработало:

Workbooks.Open Filename:=ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls"

Я также попробовал следующий код без удачи:

Workbooks.Open Filename:=app.Path & "Chapter 7 - 90 ECS 1 LLC.xls"

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

Я использую Microsoft Vista.

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

Ответы [ 5 ]

1 голос
/ 02 декабря 2011

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

Просто измените

Workbooks.Open Filename:=ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls"

до

Workbooks.Open Filename:=ThisWorkbook.Path & "\\Chapter 7 - 10 MECHANICAL.xls"

и тебе будет хорошо.

0 голосов
/ 15 июля 2009

Ваша первая строка кода верна.

Workbooks.Open Filename:=ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls"

ThisWorkbook.path вернет путь к книге, из которой выполняется код.

Если рабочая книга с кодом еще не была сохранена , она вернет пустую строку.

Попробуйте добавить этот код, чтобы увидеть, что происходит:

Debug.Print ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls"
Debug.Print ThisWorkbook.Saved

Вывод можно просмотреть через «Вид - Немедленное окно»

0 голосов
/ 15 июля 2009

Попробуйте это:

Workbooks.Open Filename: = ThisWorkbook.Path & application.pathseparator & "Глава 7 - 10 MECHANICAL.xls"

Это обеспечит использование правильного слеша.

Bill

0 голосов
/ 15 июля 2009

app.Path вернет путь к самому Excel (в программных файлах), а это не то, что вам нужно.

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


EDIT : Если подумать, вам может не понадобиться функция CurDir, поскольку текущий каталог не изменяется при открытии файла. Если вы пытаетесь открыть файл в той же папке, что и текущая книга, ваш код должен работать.

Убедитесь, что ThisWorkbook - это книга, которая, по вашему мнению, есть. Кроме того, какую ошибку вы получаете?

0 голосов
/ 15 июля 2009

Для работы ThisWorkbook.Path должен быть открыт существующий файл Excel.
Я имею в виду - для новой рабочей книги (которая не сохранена) путь будет пустым.

РЕДАКТИРОВАТЬ: макрос включен? Работает ли указанный вами код?
Я пытался с 2 файлами в одном и том же каталоге и работает код ThisWorkBook.Path & "\ myOtherFile.xls".

...