Как скопировать путь к файлу эксель
Перейти к содержимому

Как скопировать путь к файлу эксель

  • автор:

Путь к текущей книге и новая функция LET

В повседневной работе с Microsoft Excel нередко возникают ситуации, когда хорошо было бы в какой-либо определенной ячейке вывести либо полный путь к текущей книге (от буквы диска до расширения), либо путь к текущей папке, где наша книга хранится. Сделать это можно несколькими способами.

Способ 1. Вручную

Идем в Файл — Сведения и жмём в верхней части кнопку Копировать путь (File — Info — Copy path) . После этого полный путь к текущей книге окажется у нас в буфере, откуда его можно вставить куда угодно стандартным образом (например, сочетанием клавиш Ctrl + V ). Дешево и сердито, но при перемещении файла в другую папку придётся проделывать это всё ещё раз. Для автоматического обновления лучше использовать формулы.

Способ 2. Функция ЯЧЕЙКА

Уже очень давно в Excel есть встроенная функция ЯЧЕЙКА (CELL) , которая может выводить кучу разной полезной информации:
Если использовать её с аргументом «имяфайла» («filename») , то мы получим почти то, что нам нужно: Путь к файлу из функции ЯЧЕЙКА
Останется только обрезать хвост после закрывающей квадратной скобки с помощью функций ЛЕВСИМВ (LEFT) и НАЙТИ (FIND) и убрать открывающую квадратную скобку функцией ПОДСТАВИТЬ (SUBSTITUTE) : Путь к текущей книге

Способ 3. Новая функция LET

Путь к текущей книге Excel с функцией LET

Как легко заметить, в предыдущей формуле дважды повторяется один и тот же фрагмент с функцией ЯЧЕЙКА. Чтобы немного сократить и упростить эту конструкцию, можно использовать новую обёрточную функцию LET:
Первым аргументом этой функции будет имя переменной (любое, например, s), вторым — значение этой переменной (наша функция ЯЧЕЙКА), третьим — результирующая формула с участием созданной переменной.

Ссылки по теме

  • Подробное описание возможностей функции ЯЧЕЙКА в Microsoft Excel
  • Новые функции ФИЛЬТР, СОРТ и УНИК в последних версиях Excel
  • Создание ссылок между листами и книгами с помощью функции ГИПЕРССЫЛКА

Вставка в ячейку текущего имени файла Excel, пути или листа

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

Вставка текущего имени файла, его полного пути и имени активного листа

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

=ЯЧЕЙКА(«filename»)

Вставка текущего имени файла и имени активного листа

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

=ПРАВСИМВ(ЯЧЕЙКА(«filename»);ДЛСТР(ЯЧЕЙКА(«filename»))- МАКС(ЕСЛИ(НЕ(ЕОШ(ПОИСК(«\»;ЯЧЕЙКА(«filename»); СТРОКА(1:255))));ПОИСК(«\»;ЯЧЕЙКА(«filename»);СТРОКА(1:255)))))

  • Чтобы ввести формулу в виде формулы массива, нажмите клавиши CTRL+SHIFT+ВВОД.
  • Формула возвращает имя листа, если он был сохранен хотя бы один раз. Если вы используете эту формулу на несохраненном листе, ячейка формулы останется пустой, пока вы не сохраните лист.

Вставка только текущего имени файла

Введите или вставьте следующую формулу, чтобы вставить имя текущего файла в ячейку.

=ПСТР(ЯЧЕЙКА(«filename»);ПОИСК(«[«;ЯЧЕЙКА(«filename»))+1; ПОИСК(«]»;ЯЧЕЙКА(«filename»))-ПОИСК(«[«;ЯЧЕЙКА(«filename»))-1)

Примечание: Если вы используете эту формулу на несохраненном листе, вы увидите сообщение об ошибке #ЗНАЧ! в ячейке. После сохранения листа ошибка заменяется именем файла.

Дополнительные сведения

Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

Путь к файлу

Команда поможет вставить в ячейки имена всех выбранных файлов или одного конкретного, всех файлов в указанной папке и её подпапках, а так же создать список файлов и папок в виде активных гиперссылок. Плюс к этому команда может отбирать файлы на основании указанной маски(шаблона), что позволит отбирать либо файлы определенного типа, либо с определенными именами.
Для чего это может быть нужно? При использовании надстройки некоторые команды требуют указания полного пути к файлу или имен файлов(например команды: Пакетное переименование файлов, Отправка листа/книги по почте, Создание примечаний). С помощью команды Путь к файлу это можно сделать быстро и главное правильно.
Т.к. команда умеет создавать гиперссылки на файлы и папки, то можно создавать списки нужных файлов и папок для быстрого доступа к ним из одного листа.

Просматривать файлы:

  • только выбранные — после нажатия кнопки ОК появится диалоговое окно, в котором необходимо выбрать файлы для создания списка
  • все в папке — после нажатия кнопки ОК появится диалоговое окно выбора папки. Выбирается папка, файлы в которой необходимо просмотреть и создать список
    включая подпапки — доступно для пункта все в папке. Если установлен, то файлы будут просматриваться не только в указанной папке, но и во всех вложенных в неё папках до самой глубоко вложенной. Если отключен, то файлы будут просматриваться исключительно в указанной папке.

Отбирать файлы

  • все — будет создан список со всеми файлами без исключений
  • на основании маски — в данном случае в поле указывается шаблон и будут отбираться файлы, отвечающие маске шаблона. Например, если необходимо отбирать только файлы Excel, то можно указать маску: *.xls* . Если надо отбирать только файлы Word, содержащие в имени слово «инструкция», то маску можно задать как: *инструкция*.doc* .

Записать

    начиная с ячейки — указывается ячейка, начиная с которой будет записан результат. Если отобрано более одного файла/папки, то первый файл/папка записывается в указанную ячейку, а остальные в ячейки ниже. В каждой ячейке один файл/папка.

Записать как гиперссылки — независимо от того, какой вариант записи выбран(пути к файлам или папкам), в ячейках можно создать гиперссылки на исходные файлы/папки. По нажатии на такую гиперссылку будет открыт исходный файл или папка. Файлы в этом случае открываются в программе, установленной по умолчанию для просмотра данного типа файлов. Например, файлы .doc будут открываться в Word, файлы .xls в Excel.

Расскажи друзьям, если статья оказалась полезной:

Видеоинструкции по использованию надстройки MulTEx

[quote]Во-вторых и в-третьих я еще не придумал, но может быть кому пригодится и для других целей.[/quote]
Пригодится))
часто бывает нужно в коде VBA прописывать путь к файлу, вручную и лень и ошибок можно наделать.
А так — занес в ячейку, копи/паст и всех делов)) удобно
Спасибо!

Ну бляха муха, и где мне искать эту кнопку ‘Путь к файлу’ .

Сергей, давайте без мух и блях 🙂
Это часть моей надстройки — MulTEx . Поэтому кнопка появится только после её установки.

Получить имя файла с полным путем можно просто введя в ячейку
=ЯЧЕЙКА(«имяфайла»;A1)
Получение только имени файла без пути — работа с текстовой строкой
=ПРАВСИМВ(ЛЕВСИМВ(ЯЧЕЙКА(«имяфайла»;A1);ПОИСК(«]»;ЯЧЕЙКА(«имяфайла»;A1))-1);ДЛСТР(ЛЕВСИМВ(ЯЧЕЙКА(«имяфайла»;A1);ПОИСК(«]»;ЯЧЕЙКА(«имяфайла»;A1))-1))-ПОИСК(«[«;ЯЧЕЙКА(«имяфайла»;A1)))
Команда ищет квадратные скобки, запоминает их положение в текстовой строке и обрезает по ним. Аналогично можно сделать и только путь. Это все ерунда!
А вот как заставить Ексель сохранять в ссылках только имя файла без пути? Делаю ссылки — все пучком, после закрытия/открытия — все ссылки с путями и фиг два, что исправишь!

Кстати только путь можно получить еще и вот так — =ИНФОРМ(«каталог»)

Антон, в принципе все верно, но есть одно но. Ваши функции работают только с открытыми на данный момент книгами Excel. Как Вы функциями озвученными получите путь до закрытого файла? Да еще и текстового или файла картинки? Они этого не могут.
Команда же делает это достаточно просто. Ну и плюс ко всему она предназначена для облегчения работы с другими функциями MulTEx(например отправки сообщений, создания примечаний и т.п.). За комментарий спасибо: кому-то вполне вероятно достаточно будет пути именно до текущего файла. И Вашу формулу можно сократить:
=ПСТР(ЯЧЕЙКА(«filename»);ПОИСК(«[«;ЯЧЕЙКА(«filename»))+1;ПОИСК(«]»;ЯЧЕЙКА(«filename»))-ПОИСК(«[«;ЯЧЕЙКА(«filename»))-1) Если закрыть файл, то пути к ним не убрать, т.к. Excel не узнает тогда из какой ячейки считывать информацию.

Мои функции как раз для упрощения каких-то определенных задач. Я не претендовал на все знание или замену вашей утилиты. Просто сам тыкаюсь часто и порой такие очевидные вещи не сразу находишь. Если кому пригодится — на здоровье, нет — на нет и суда нет.
По последнему предложение — если убрать пути то не будет знать из какой ячейки? Какая связь между путем к файлу и адресом ячейки? Или вы имеете в виду что не будет знать где файл с этой ячейкой? По идее имя файла есть и если не указан путь — программа должна искать в текущем каталоге. Интересно то, что если перенести оба файла (исходный и со ссылкой) в другую папку и открыть файл со ссылкой, то Ексель почти всегда сам меняет пути. Почти всегда.
В общем странное нечто — офис от МС

Как определить путь к файлу (текущую папку) в excel?

Мне в VBA Excel нужно перебрать файлы в текущей директории, в моем случае — C:\Victory.
Я использую функцию CurDir, но она мне выдает — C:\Documents and Settings\Admin\Мои документы.
Как мне правильно определить текущую директорию? Помогите пожалуйста!

VictorM

iPath = ThisWorkbook.Path 
iPath = ActiveWorkbook.Path
iExcel = Application.Path

В первом примере указан путь к файлу, где содержится сама программа, которая в настоящий момент выполняет код VBA.
Во втором примере указан путь к активному файлу.
В третьем примере указан путь к папке, в которой установлен MS Excel. При наличии у Вас нескольких версий, укажет путь к версии, в которой Вы работаете в данный момент.

Похожие статьи

  • Как макросом брать данные с word документов в excel?
  • Как сделать, чтобы заполненные ячейки в excel считались с условием?
  • Создание выпадающего списка средствами VBA
  • Как в операторе автофильтра указать, что выбираются выбираются все значения, кроме нуля?
  • Примечание в ячейки листа со значением из другой ячейки
  • Как сделать, чтобы значение предлагалось ввести пользователю?
  • Вывод данных в textbox
  • Разделить файл на несколько частей с помощью макроса в excel
  • Как скопировать с одного столбца через одну строку в другой столбец данные
  • Срабатывание разных макросов при изменении разных диапазонов на листе

Купить рекламу на сайте за 1000 руб

пишите сюда — alarforum@yandex.ru


Да и по любым другим вопросам пишите на почту

  • Форум Web программирование (веб)
    • Форум Python (питон)
    • Форум PHP (пхп)
    • Форум Perl (перл)
    • Форум Ruby (руби)
    • Форум JavaScript (яваскрипт)
    • Форум Ajax (аякс)
    • Форум SQL (эскюэл)
    • Форум HTML (хтмл)
    • Форум CSS (сиэсэс)
    • Форум XML (иксмл)
    • Форум JSON (джсон)
    • Форум Pascal (паскаль)
    • Форум Delphi (делфи)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *