zerbino
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Приветствую! Намедни пришлось искать решение одной проблемы. Решение в рунете я не нашел, но повезло найти на нерусском источнике. Итак: Допустим все ссылки ведут на сайт и исходный путь такой начинается с "http://www.site.ru/catalogue/" с папками внутри, а надо сделать, чтобы в итоге, как вариант, ссылка, например, вела на локальный каталог, который находится в той же папке, что и xls файл и имеет такую же структуру, что и в первичном источнике. ============================================================= замена текста гиперссылки с отображением пути в ячейке на странице: ============================================================= Sub ReplaceHyperlinks() Dim h As Hyperlink Dim intWrksheets As Integer Const OLD_PATH = "http://www.site.ru/catalogue/" 'Старый путь:: Должно заканчиваться обратным слэшем Const NEW_PATH = "catalogue/" 'Поменять на то, чем нужно заменить:: Должно заканчиваться обратным слэшем For intWrksheets = 1 To ActiveWorkbook.Worksheets.Count 'для каждого листа в книге For Each h In Worksheets(intWrksheets).Hyperlinks 'для каждой гиперссылки в листе h.Address = Replace(h.Address, OLD_PATH, NEW_PATH, 1, 1) h.TextToDisplay = Replace(h.Address, OLD_PATH, NEW_PATH, 1, 1) Next Next End Sub ============================================================= и второй вариант, без замены отображаемого текста гиперссылки в ячейке ============================================================= Sub ReplaceHyperlinks() Dim h As Hyperlink Dim intWrksheets As Integer Const OLD_PATH = "http://www.site.ru/catalogue/" ':: MUST END IN BACKSLASH Const NEW_PATH = "catalogue/" 'Change as required:: MUST END IN BACKSLASH For intWrksheets = 1 To ActiveWorkbook.Worksheets.Count 'for every sheet in the workbook For Each h In Worksheets(intWrksheets).Hyperlinks 'for every hyperlink in the sheet h.Address = Replace(h.Address, OLD_PATH, NEW_PATH, 1, 1) Next Next End Sub ============================================================= Пользуйтесь) Например если вначале все ссылки вели на "http://www.site.ru/catalogue/folder1/pic.jpg" "http://www.site.ru/catalogue/folder2/pic2.jpg" и т.д., то после выполнения указанного скрипта ссылки будут вести на "<Локальный путь до папки, где лежит xls файл+>/catalogue/folder1/pic.jpg" "<Локальный путь до папки, где лежит xls файл+>/catalogue/folder2/pic2.jpg" и т.д пути можно, конечно, заменять на любые другие, т.е. не локальные в т.ч. | Всего записей: 552 | Зарегистр. 09-06-2003 | Отправлено: 14:13 27-02-2010 | Исправлено: zerbino, 14:20 27-02-2010 |
|