Макрос для исправления повреждённых гиперссылок во всей книге Excel
Макрос может быть полезен для замены абсолютных гиперссылок на относительные, а также помогает вернуть работоспособность ссылок после случайного сохранения файла Excel в другой папке (на другом диске).
Если нужно заменить несколько вариантов неверных ссылок, код будет таким:
Расширенная версия этого макроса учитывает, что слеш в ссылках может быть как прямым, так и обратным, а также выводит информацию о количестве произведённых замен, и список ссылок из файла, которые не были обработаны (к которым замены не были применены)
Комментарии
Елена, это уже совсем другой макрос нужен.
Можем сделать под заказ. От 1500 руб.
Скажите, пожалуйста, как сделать, чтобы макрос по введенной уже гиперссылке проверял наличие объекта сначала по указанному адресу (1) и если оттуда объект уже перенесен, адрес менялся на другой (2). Гиперссылка создается на папки объектов на удаленном сервере, а со временем они переносятся в другую папку- архив. Надеюсь понятно написала.
Не знаю что даже сказать. Магия сработала. Спасибо разработчик большое! Здоровья тебе и твоим близким.
Спасибо Дружище. Желаю тебе всего хорошего, чего сам себе желаешь.
Благодарю тебя за то что ты есть, и написал такой прекрасный макрос.
Ты спас годовую работу трех человек.
Поcле выполнения макроса, ссылки не меняются и выпадает сообщение: Заменено гиперссылок 0. Также в файле найдены ссылки на: и перечисляются гиперссылки.
Сработал расширенный макрос,
более 5000 адресов исправлены на коректные
Огромная благодарность
Дай Бог тебе здоровья автор
Добрый день! Прогнал расширенную версию макроса, он отработал, но не все. после нажатия на ошибочную гиперссылку и дальнейшим запуском макроса он ее отрабатывает, а остальные просто выводит в протокол что они есть.
Я спасён!
Огромное спасибо за помощь! Помогли сэкономить огромный вал рабочего времени!
Огромно спасибо. Автоматически исправил более 5 тысяч ссылок в архиве. Все работает. Ну просто нет слов, как я Вам признателен.
СПАСИБО ОГРОМНОЕ ЗА ВАШ РЕСУРС И ДОБРОТУ.
Правда, Ваш макрос у меня не работает почему-то, цель сделать из абсолютных ссылок относительные.но выяснилось, что вполне работает обычное «найти и заменить»
в строку «найти» пишем кусок пути ДО нужной папки, а в «заменить» оставляем пустоту, ставим галку «во всей книге» и жмем «заменить все»
пс, на всяк случай
изначальный вид ссылки был C:\Users\SVETLANA\Desktop\Крит дефектовка — копия\Вилла1\14.11.2016 16-38-43_PB148421.JPG
файл excel лежит в папке Вилла1
В найти и заменить меняю C:\Users\SVETLANA\Desktop\Крит дефектовка — копия\ на пусто
На другом компьютере ссылки работают корректно
Тут ничего особенного делать не надо, — Excel сам все гиперссылки в книге подправит, как только вы лист переименуете.
Добрый вечер всем! Выручайте! Как изменить имя листа книги в Excel при этом не потеряв гиперссылки? Заранее благодарю!
Благодарность не знает границ! Спасибо очень выручили!)))
Доброго дня! Подскажите, пожалуйста, код макроса, который бы в выделенном диапазоне ячеек (каждая из которых ссылается в относительном режиме на какую-то ячейку этого же листа) заменил все относительные ссылки на абсолютные.
vitamax555, а какое отношение ваш вопрос имеет к теме статьи, — замене гиперссылок?
На вопросы «не в тему» не отвечаю
Почему то макрос меняет гиперссылку только в одной ячейке, следующую не трогает. Приходится запускать столько раз, сколько ячеек. Как будто цикл не срабатывает.
Здравствуйте, Юрий
Достаточно убрать цикл по листам,
применяя изменения только к активному листу:
Спасибо! Очень выручила данная статья!
Но как всегда возник вопрос — как изменить данный макрос, что бы изменения коснулись только ОДНОГО листа в книге? (Файлов больших несколько, листов в каждом масса, соответственно разбирать файл по листам а потом собирать его обратно — очень долгий и не совсем желаемый процесс. )
Заранее СПАСИБО.
Вот в этом и проблема, когда я папку с (эксель и файлами) перемещаю на другой комп у меня остается адрес гиперссылки моего компа (где находилась папка изначально)
Здравствуйте, Владимир
Так не получится, — Excel (тем более, если он не запущен) не отслеживает перемещение файлов и папок.
Да и как Excel узнает, где искать перемещенные файлы. мало ли куда вы их перенесете, вдруг вообще на другой комп.
Надо делать гиперссылки относительными (чтобы путь прописывался относительно файла Excel)?
а папку с файлами держать в той же папке. где сохранён файл Excel, и не переименовывать.
Тогда,если переносите на другой комп файл Excel вместе с папкой, гиперссылки вроде должны сохранять работоспособность.
Здравствуйте, Татьяна.
Так вы перенесите файлы на другой комп в ту же папку (чтобы путь к папке не изменился), — и тогда ничего переделывать не придётся.
А если путь к папке изменится, — тогда макрос этот поможет.
Да повыситься многократно твоя карма, уважаемый автор! Спасло!:)
Большое человеческое СПА-СИ-БО!
Ваш макрос здорово меня выручил.
и снова не работает, вот так у меня прописан макрос6
более того при попытке заменить в адресах хотя бы один символ (для проверки работоспособности)например:
Попробуйте менять ЧАСТЬ пути в гиперссылках
(пути в гиперссылках могут быть сохранены не абсолютные, а относительные, — потому замена и не выполняется)
А вы уверены, что у вас на листе именно гиперссылки (синие, подчеркнутые), а не формулы, например?
Если это поможет, — то вам нужен другой макрос (попроще, который выполняет замены в ячейках, а не в гиперссылках):
вместо
Ну можно «выделить» так строки — вот только нужно ли?
Если вы не знаете, зачем это «выделение» — зачем его делаете?
Это точки останова макроса. Оно вам надо, чтобы макрос останавливался на каждой строке?
Код один раз сработал — значит, проблема точно не в нём.
Ищите проблему в соответствии пути гиперссылок, и текст для замены в макросе.
И убирайте все красные точки (и не ставьте их впредь)
Огромное спасибо! Очень помогло! Можно сказать, спасло от кары босса )))!
а по-моему гиперссылки и ссылки на файлы итак считаются одним и тем же. для них создана только одна кнопочка там в меню «изменение гиперссылки» слева
В меню «Изменение Гиперссылки» слева есть возможность выбора:
Связать с:
— файлом, веб-страницей;
— местом в документе;
— новым документом;
— электронной почтой.
Ты не ошибся.
а по-моему все ссылки одинаковые. она становится гипер или обычной просто из-за содержимого ссылки. например если начинается на «http://. » значит гипер, а если «C:\. » или «\\192.168.1.1\. » значит локальная или сетевая там.
Вроде бы формат файла не изменился (xls) 97-2003, как был так и остался (не у всех, просматривающих, таблицу есть новый (xlsx))
[expert_bq id=»1570″]Для снятия защиты с листа необходимо проделать тот же самый путь вкладка Рецензирование группа Изменения команда Снять защиту листа. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] К делу – попробуйте по аналогии с «вордом» –[DocWord.Close True]И использовать в
«AutoExec — при запуске Word или загрузке глобального шаблона
AutoNew — при создании нового документа
AutoOpen — при открытии существующего документа
AutoClose — при закрытии документа
AutoExit — при закрытии Word или выгрузке глобального шаблона»
Excel не спрашивает о сохранении при закрытии
Защита листа, как мы видим, является надежным способом защиты данных в Excel от изменений. От злого умысла нас теперь оберегает пароль. Даже если файл будет заменен другим, но с таким же именем, мы всегда сможем это понять, вводя наш пароль (если пароль принят, значит, файл не меняли).
[expert_bq id=»1570″]Выберите один из вариантов в выпадающем списке — документ может быть загружен в новое окно, в тот же фрейм, который содержит эту ссылку или поверх всех фреймов текущего окна. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq]
Отредактировать римские цифры можно следующим образом. Щелкните по с римской цифрой. В строке «Вставка функции» (fx) появится запись этой цифры в редактируемом формате «=РИМСКОЕ(число)». Просто напишите новое число арабскими цифрами и нажмите «Enter».
Автоматический перенос данных из одной таблицы в другую в Excel
причина была Excel ждет на вопрос об операции я просил, который был скрыт за главным окном. С тех пор я обнаружил, что отображение этого скрытого вопроса может быть сложным, но возможным. Я не знаю, почему, в редких случаях, вопрос не на вершине, как это обычно бывает.