Как создать макрос, чтобы найти и заменить часть именованного диапазона.Изменение именованного диапазона
Допустим, у меня есть CKWH_1, CKWH_2
Есть ли способ заменить KWH с THR поэтому он стал CTHR_1, CTHR_2
Спасибо.
Как создать макрос, чтобы найти и заменить часть именованного диапазона.Изменение именованного диапазона
Допустим, у меня есть CKWH_1, CKWH_2
Есть ли способ заменить KWH с THR поэтому он стал CTHR_1, CTHR_2
Спасибо.
Sub Renames()
Const csOld As String = "KWH"
Const csNew As String = "THR"
Dim strN As Name
For Each strN In ActiveWorkbook.Names
If InStr(1, strN.Name, csOld) <> 0 Then
strN.Name = Replace(strN.Name, csOld, csNew)
End If
Next strN
End Sub
Используйте константы в верхней части, чтобы контролировать, какой текст заменяется на каждое имя, и то, что вставлено на его место.
Это, я считаю, оставит все старые именованные диапазоны еще активными. Новые именованные диапазоны будут существовать, но будут дублироваться от старого. Вам нужно добавить в свой цикл, чтобы обойти, а затем удалить старые именованные диапазоны после их переименования. Также я бы предположил, что мы требуем от OP больше усилий, прежде чем мы будем решать их вопросы. – nbayly
Поскольку мы каждый раз меняем имя, оно не дублирует именованные диапазоны. Он просто переименовывает их. – Werrf
Я проверил его с помощью Excel 2016, и я подтвердил, что он не просто переименовывает их. Он создает новый именованный диапазон и сохраняет старый именованный диапазон. Об этом также говорится в сообщении, которое я связал с моим комментарием по оригинальной публикации. Я сделал это, создав именованный диапазон, а затем написал суб, который переименовывает его. После запуска я вижу в «Менеджере имен», что есть два именованных диапазона, ссылающихся на один и тот же адрес. Вы также подтверждаете это, создавая именованный диапазон, затем выбираете тот же диапазон и помещая другую строку в поле «Имя». Затем вы получите 2 именованных диапазона, а не 1. – nbayly
Возможный дубликат http://stackoverflow.com/questions/21443737/vba-excel-2010-renaming-named-ranges – nbayly