Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Массовое изменение адресов ссылок
 
Цитата
Мотя написал:
Интересно, какой-такой "Гений" додумался до такого алгоритма?!Умереть - не встать!  
Ваш покорный слуга)

Прошу прощения за отсутствие элегантности в коде и использование не самых эффективных инструментов.

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

С уважением,

JG
Массовое изменение адресов ссылок
 
Казанский, для большого диапазона с описанными мною ранее особенностями такой способ довольно трудозатратен.

Кажется получилось в VBA сделать желаемую замену, правда пока на простом примере и на небольшом диапазоне делал проверку, но лёд тронулся, лишних ошибок не возникает, надо только добавить выбор параметров для изменения в диалоге.
Код
Sub change()
    Dim CC As Range
    Dim st$, newst$, findstr$, ret$, st1$, newst2$, findstr3$, ret4$
    Dim UserSelect As Excel.Range
    Worksheets("Лист1").Select
    Set UserSelect = Application.InputBox("Select your favorite cell:", Type:=8)
    For Each CC In [UserSelect]
        st = CC.Formula
        findstr = "june"
        ret = "september"
        newst = Replace(st, findstr, ret, 1)
        findstr1 = "-06"
        ret1 = "-09"
        newst1 = Replace(newst, findstr1, ret1, 1)
        CC.Formula = newst1
        MsgBox (newst1)
    Next
End Sub

Тему можно закрыть, всем спасибо за помощь.

С уважением,

JG

Массовое изменение адресов ссылок
 
Ts.Soft, спасибо, но у меня в диапазоне встречаются разные формулы, т.е. может отличаться первая часть названия файла xxxx-08-18.xlsx, xxxx - переменная.
Меня интересуют решение, в котором при идентификации заданного критерия замены (одного или нескольких для одной формулы, в моём случае для двух) макрос меняет в формуле необходимую часть на заранее заданные элементы.

Казанский, в одно действие изменить без всплывающего окна не получается, т.к. может отличаться первая часть названия книги. Я пробовал создавать функцию по аналогии с Ф.текст в MS 2016, редактировать текст формулы в две замены и потом заменять формулу, но за счет большого диапазона данных это тоже не самый сподручный способ.
Массовое изменение адресов ссылок
 
Цитата
Ts.Soft написал:
А макрос откуда должен узнать что и на что Вы хотите заменить? Тогда Вы должны по другому сформулировать задачу
Создания диалога в макросе для выбора диапазона ячеек и критерия замены как раз не является основной проблемой в задаче. Мне необходимо понять как осуществить процесс замены в формуле, какие свойства и как использовать.
Изменено: JGreen - 3 окт 2018 11:28:59
Массовое изменение адресов ссылок
 
Цитата
Александр написал:
День добрый!Вот так через СОНТРЛ+Н и фигачтеа лучше конечно пример прикладывать
Александр, благодарю, но для большого количества ссылок такой способ неприменим, после замены ctrl+h открывает окно для указания файла, и если счет идёт на тысячи ссылок, то уместнее воспользоваться макросом.
Вопрос открыт.
Изменено: JGreen - 3 окт 2018 11:22:34
Массовое изменение адресов ссылок
 
Коллеги, добрый день!

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

Задача:
-Рабочая книга с большим кол-вом ссылок (не гиперссылок) на другие книги.
-Ссылки выглядят следующим образом: ='C:\june\[книга-06-18.xlsx]лист1'!A1
-Необходимо все ссылки на листе или в рамках какого-либо диапазона отредактировать след образом:

До: ='C:\june\[книга-06-18.xlsx]лист1'!A1
После: ='C:\august\[книга-08-18.xlsx]лист1'!A1

Заранее благодарю за содействие.
С уважением,
JG
Страницы: 1
Наверх