EXCEL -как получить полное имя файла
Модератор: Naeel Maqsudov
Имеется несколько файлов EXCEL с одинаковыми именами – «test.xls», но расположенных в разных каталогах. Как узнать полное имя загруженного в данный момент файла и имя родительского каталога этого файла?
Спасибо
Спасибо
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
можно вот так:
Код: Выделить всё
iFullName = ThisWorkbook.FullName
iFullName = ActiveWorkbook.FullName
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".
VictorM, спасибо!
Предложенные Вами варианты проходят, если макрос- в этой же книге(подойдет 1-ый вариант) или книга - активная(подойдет 2-ой вариант), а как быть, если эти условия не выполняются?
Моя ситуация-открыты 3 эксцелевских файла - один из них содержит макросы("Macr.xls"), другой-вспомогательные данные("test.xls") и третий - обрабатываемые данные("work.xls")-активная книга. Я могу, конечно, временно активировать "test.xls" , "снять" его полное имя, а потом из него вычленить имя каталога, в котором "test.xls" находится, потом восстановить активность "work.xls" - но нету ли чего попроще?
Предложенные Вами варианты проходят, если макрос- в этой же книге(подойдет 1-ый вариант) или книга - активная(подойдет 2-ой вариант), а как быть, если эти условия не выполняются?
Моя ситуация-открыты 3 эксцелевских файла - один из них содержит макросы("Macr.xls"), другой-вспомогательные данные("test.xls") и третий - обрабатываемые данные("work.xls")-активная книга. Я могу, конечно, временно активировать "test.xls" , "снять" его полное имя, а потом из него вычленить имя каталога, в котором "test.xls" находится, потом восстановить активность "work.xls" - но нету ли чего попроще?
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Для любой загруженной в этом сеансе работы книги
Код: Выделить всё
Dim i as integer
for i = 1 to Workbooks.Count
Debug.Print Workbooks(i).FullName
next i
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
или, что по сути тоже самое - показать полный путь к открытой книге с именем test.xls
местонахождение данного макроса абсолютно любое...
местонахождение данного макроса абсолютно любое...
Код: Выделить всё
Sub ShowFullName4Test()
Dim w As Workbook
For Each w In Workbooks
If UCase(w.Name) = UCase("test.xls") Then
MsgBox "Full Name " & w.FullName
End If
Next w
End Sub
если не ошибаюсь можно в любой ячейке открытого файла прописать формулу
=ЯЧЕЙКА("имяфайла") - выдаст полный путь
=ЯЧЕЙКА("имяфайла") - выдаст полный путь
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
Dim_ok, не.. мне кажется, что так не пойдёт - ибо 1) не соответствует постановке задачи - получить имя книги из макроса, причём эта книга неактивна (смотри пост #3)...
2) плюс, хотя в данном случае это неважно, но надо учитывать,
что ЯЧЕЙКА("имяфайла") - работает только для сохранённых книг!
впрочем, вариантов уже достаточно - anval есть из чего выбрать...
2) плюс, хотя в данном случае это неважно, но надо учитывать,
что ЯЧЕЙКА("имяфайла") - работает только для сохранённых книг!
впрочем, вариантов уже достаточно - anval есть из чего выбрать...
Странно, а мне показалось "Как узнать полное имя загруженного в данный момент файла и имя родительского каталога этого файла?" предполагает его (файла) активность и не имеет никакого упоминания о макросах (смотри пост #1)...
впрочем да, выбирать есть из чего
впрочем да, выбирать есть из чего
Всем - спасибо за участие, Aent и Serge_Bliznykov - за ответы, которые мне подходят.