Имеется сводная таблица и куча файлов с отчетами excel в разных каталогах. В каталоге прописаны пути к файлам отчета в виде простой текстовой строки: C:\Отчеты\Таблица отчетов1.xlsx Файлы отчетов различаются именами и каталогами, но внутри структура одинакова, в них таблицы одного размера и в одном и том же месте, на листе Отчет. Подскажите формулу которая путь к отчету в примере, конвертирует в ссылку. Обычно вручную через создать связь делаю, но уж много файлов нужно добавить. Пробовал через костыли сделать формулу
в ней нахожу крайний "\" в пути к файлу и подменяю на "\[" что бы получилась гиперссылка. Потом через ДВССЫЛ текстовую формулу собираю в ссылку на ячейку, но она при закрытом файле отчета не работает. В примере показано. Или может предложите свой пример, желательно без макросов.
upd обновил фаил с примером там понятней расписал
Имеется сводная таблица и куча файлов с отчетами excel в разных каталогах. В каталоге прописаны пути к файлам отчета в виде простой текстовой строки: C:\Отчеты\Таблица отчетов1.xlsx Файлы отчетов различаются именами и каталогами, но внутри структура одинакова, в них таблицы одного размера и в одном и том же месте, на листе Отчет. Подскажите формулу которая путь к отчету в примере, конвертирует в ссылку. Обычно вручную через создать связь делаю, но уж много файлов нужно добавить. Пробовал через костыли сделать формулу
в ней нахожу крайний "\" в пути к файлу и подменяю на "\[" что бы получилась гиперссылка. Потом через ДВССЫЛ текстовую формулу собираю в ссылку на ячейку, но она при закрытом файле отчета не работает. В примере показано. Или может предложите свой пример, желательно без макросов.
upd обновил фаил с примером там понятней расписалАлександр7034
Испытываю трудность не с этим, а с тем как путь в текстовом виде C:\Отчеты\Таблица отчетов1.xlsx превратить в ссылку на этот фаил на определённый лист в нем на ячейку.
Испытываю трудность не с этим, а с тем как путь в текстовом виде C:\Отчеты\Таблица отчетов1.xlsx превратить в ссылку на этот фаил на определённый лист в нем на ячейку.Александр7034
Сообщение отредактировал Serge_007 - Среда, 28.06.2023, 08:14
Вы в примере привели структурированную в ссылку строку, с квадратными скобками и символами"'", тогда как в моем случае нужно путь без скобок превратить в понятной exel путь гиперссылок. То есть вручную я могу поставить эти символу, но как раз хочу уйти от ручного приписывания.
Вы в примере привели структурированную в ссылку строку, с квадратными скобками и символами"'", тогда как в моем случае нужно путь без скобок превратить в понятной exel путь гиперссылок. То есть вручную я могу поставить эти символу, но как раз хочу уйти от ручного приписывания.Александр7034
Сообщение отредактировал Serge_007 - Среда, 28.06.2023, 08:14
Вот как так? ДВССЫЛ на ячейку с формулой выводит данные ячейки с той книги на которую ссылаюсь, но это пока книга на что ссылаюсь открыта. При закрытом втором файле ДВССЫЛ на него не работает. Пробовал макрофункцию вычислить, результат - ошибка, не верная ссылка на ячейку.
Вот как так? ДВССЫЛ на ячейку с формулой выводит данные ячейки с той книги на которую ссылаюсь, но это пока книга на что ссылаюсь открыта. При закрытом втором файле ДВССЫЛ на него не работает. Пробовал макрофункцию вычислить, результат - ошибка, не верная ссылка на ячейку.Александр7034
Сообщение отредактировал Александр7034 - Среда, 28.06.2023, 14:38
ну значит Вы не совсем против VBA. держите макрос - событие изменения ячейки E1. макрос не открывает книгу, а "собирает" формулу [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("E1")) Is Nothing Then 'данные из a = Range("e1").Value 'путь\файл b = InStrRev(a, "\") 'ищем правый слеш с = Left(a, b) & "[" & Mid(a, b + 1, Len(a)) & "]Отчет'!" 'часть формулы без ссылки на ячейку d = "R[-1]" 'смещение по строке e = "C2" 'столбец 'вставляем в f = "E3:E8" Range(f).FormulaR1C1 = "='" & с & d & e End If End Sub
ну значит Вы не совсем против VBA. держите макрос - событие изменения ячейки E1. макрос не открывает книгу, а "собирает" формулу [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("E1")) Is Nothing Then 'данные из a = Range("e1").Value 'путь\файл b = InStrRev(a, "\") 'ищем правый слеш с = Left(a, b) & "[" & Mid(a, b + 1, Len(a)) & "]Отчет'!" 'часть формулы без ссылки на ячейку d = "R[-1]" 'смещение по строке e = "C2" 'столбец 'вставляем в f = "E3:E8" Range(f).FormulaR1C1 = "='" & с & d & e End If End Sub