Добрый день.
Необходимо заменить путь в столбце E. Нужно заменить значение 2023 на 2024 желательно сразу во всей книге или по листам
='\\zerocool\Exchange\SeaEnergy\БП2023\[БП_2023_form.xlsx]номер ячейки
Нашла макрос, но он не выполняет свою функцию, ошибку не выдает, диалоговые окна о диапазоне, что на что менять выдает. Подскажите где ошибка?
Файл с поддержкой макроса, разработчик - VB- insert-module - alt+f11
Макрос
Sub Replace_Hyperlink() Dim rCell As Range, rRange As Range, sWhatRep As String, sRep As String
On Error Resume Next
Set rRange = Application.InputBox("Укажите диапазон для замены", "Выбор данных", Type:=8)
If rRange Is Nothing Then Exit Sub
sWhatRep = InputBox("Что меняем?", "Ввод данных", ".excel_vba")
sRep = InputBox("На что меняем?", "Ввод данных", "excel-vba")
If sWhatRep = "" Then Exit Sub
If sRep = "" Then
If MsgBox("Хотите заменить " & sWhatRep & " на пусто?", vbCritical + vbYesNo, "Предупреждение") = vbNo Then Exit Sub
End If
Application.ScreenUpdating = 0
For Each rCell In rRange
If rCell.Hyperlinks.Count > 0 Then
If rCell.Hyperlinks(1).Address = rCell.Value Then
rCell = Replace(rCell.Value, sWhatRep, sRep)
End If
If rCell.Hyperlinks(1).Address <> "" Then
rCell.Hyperlinks(1).Address = Replace(rCell.Hyperlinks(1).Address, sWhatRep, sRep)
End If
If rCell.Hyperlinks(1).SubAddress <> "" Then
rCell.Hyperlinks(1).SubAddress = Replace(rCell.Hyperlinks(1).SubAddress, sWhatRep, sRep)
End If
End If
Next rCell
Application.ScreenUpdating = 1
End Sub
[ФАЙЛЫ ВАШИ ПОЛУЧЕНЫ - НЕТ НЕОБХОДИМОСТИ ВЫКЛАДЫВАТЬ ИХ ПОВТОРНО]
Если у вас одна книга (т.е. не много работы), то можно вообще без макроса сделать замену.
Выделите фрагмент, в котором нужно сделать замену.
В поле Найти вставьте:
='\\zerocool\Exchange\SeaEnergy\БП2023\[БП_2023_form.xlsx]Merle'!$O15
В поле заменить:
='\\zerocool\Exchange\SeaEnergy\БП2024\[БП_2024_form.xlsx]Merle'!$O15
Нажмите "Заменить все", появится диалог для выбора файла, нажмите "Отмена".
Готово.
Написал вам два письма на почту с заголовком "Письмо с Форума по VBA, Excel и Word". Написал именно на почту, а не на форум.
спасибо за вариант. Файлов много, в каждом файле множество вкладок, заменой обрабатывать очень трудоемко. Файлы стандартизированы т.е. содержат однообразную форму с одинаковым количеством строк и столбцов. Хотелось бы убыстрить процесс замены формульных ссылок через макрос
Вы предоставили макрос, в котором пользователь выбирает диапазон.
Если нужно обработать несколько листов, то при каждом запуске пользователь должен выбирать диапазон. Это наверное долго.