Макрос найти и заменить части ссылок excel

Снимок экрана с примерами строк: введите описание изображения здесь

Это макрос, который я сначала записал с относительными ссылками:

ActiveCell.Offset(-2, -3).Range("A1:L1").Select Selection.Copy ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell.Rows("1:1").EntireRow.Select Selection.Replace What:="Billy Bob", Replacement:="Joanne Sue", LookAt:= _ xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub 

У меня есть электронная таблица, связывающая многие другие отдельные электронные таблицы.

Значения в DN все соответственно ссылаются на одну и ту же ячейку в отдельно связанных листах, например:

 ='G:\WORK\Test folder\Test\Employees\[Billy Bob.xlsx]Sheet1'!$E$2 

Ссылка столбца C ссылается на значение в столбце B, чтобы заполнить имя ссылки следующим образом:

 =HYPERLINK("G:\WORK\Test folder\Test\Employees\Billy Bob.xlsx",B3) 

Поэтому я по существу пытаюсь изменить раздел имен каждой ссылки в строке. Итак, если бы я должен был ввести другое имя в колонку B, макрос или код затем берет это имя в B и добавляют его к гиперссылке в C и всем листам в DN.

Похоже, что у вас есть имена в столбце B, и каждое имя имеет рабочий лист под этим именем. Таким образом, это создаст гиперссылки на Range A1 на этих листах. Обязательно замените d s:\temp\hyper.xlsxd на фактический путь к вашей книге.

 Sub MakeHyperlinksColumnC() Dim x As Long Dim aCell As Range Dim nm As String For x = 2 To ActiveSheet.Columns("C").Cells.Count Set aCell = ActiveSheet.Columns("C").Cells(x) If Not IsEmpty(aCell.Offset(0, -1)) Then nm = aCell.Offset(0, -1).Value aCell.Formula = "=HYPERLINK(""[s:\temp\hyper.xlsx]'" & nm & "'!A1"",""" & nm & """)" Else Exit For End If Next End Sub 

Я думаю, что это будет работать лучше, чем поиск и замена. Также он пропускает первую строку и выходит из первой пустой ячейки.

ДРУГОЙ МЕТОД

На самом деле вам совсем не нужен код; просто используйте формулу, подобную этой в С2, затем скопируйте:

 =HYPERLINK("[s:\temp\hyper.xlsx]'"&B2&"'!A1",B2) 
Interesting Posts

Цифровая подпись для макроса Excel, чтобы избавиться от предупреждений о безопасности макросов

VBA: определение общего класса

Исправлена ​​ошибка синтаксиса при попытке организовать / сортировать данные в VBA в Excel

Как я могу выделить шрифты определенной строки или ячейки в листе Excel с помощью C #?

Перемещение данных между листами Excel

Изменение типа данных после умножения двух столбцов в MS Access

Изменить NumberFormat (с выражением) в массиве

Изменение ссылки на лист формул с помощью макроса

Чтение из ошибки файла excel

Формула захвата из базы рабочего листа пыльника по значению в заголовке

Макро выполнить VLOOKUP, который ищет конкретные имена столбцов для ввода конкретной информации

VBA / .Net загружает файлы с защищенного паролем веб-сайта через систему безопасности Windows

Как искать несколько книг excel для определенной строки текста макроса vba

Попытка выражения Excel IF с рядом возможных результатов

контент-приложения для офиса: как установить диапазон и прочитать его?

Давайте будем гением компьютера.