Страницы: 1
RSS
"Найти и заменить" по значению в другой ячейке
 
Есть некие таблицы, где в одном столбце может находиться искомое значение (текст или число, формула). Нужно аналогично массовой замене значений через ctrl+f заменять значения, которые соседствуют с ячейкой, где найдется совпадение. Саму ячейку с совпадающим значением менять не требуется.
В качестве примера: должны измениться числовые значения напротив ячеек с текстом "Замена" (выделены цветом).
https://imgur.com/P9YEvwZ  (вставка картинок не работает)
Каким образом можно такое сделать? Может потребоваться чтобы замена работала только в выделенном диапазоне или конкретном листе. Excel 2019 версии.
Изменено: FunApple - 16.05.2022 16:29:54
 
Цитата
FunApple написал:
вставка картинок не работает
Ну здесь как бы форум по эксель, а не по фотошопу. Файл показываем с описанием согласно файла. Или в файле показываем что должно получиться ручками.
 
Если структура таблицы как на картинке, то отфильтровать необходимое значение, в нужном столбце таблицы выделить все видимые ячейки и заменить на нужные значения. Если структура таблицы произвольная, то сначала привести всё к нормальному виду.
От версии Excel не зависит.
 
Цитата
написал:
Если структура таблицы как на картинке, то отфильтровать необходимое значение, в нужном столбце таблицы выделить все видимые ячейки и заменить на нужные значения. Если структура таблицы произвольная, то сначала привести всё к нормальному виду.
От версии Excel не зависит.
Структура произвольная и никаким образом к "нормальному виду" неизменяемая. Есть только закономерность типа: ячейки для изменения находятся в соседней справа от искомой.
 
Код
Sub myReplace()
'Выделить ячейки с заменяемыми значениями. Запустить макрос.

    Dim rn As Range
    On Error Resume Next
    Set rn = Intersect(Selection, ActiveSheet.UsedRange)
    On Error GoTo 0
    If rn Is Nothing Then Exit Sub
    
    Application.EnableEvents = False
    Dim Application_Calculation As Long
    Application_Calculation = Application.Calculation
    Application.Calculation = xlCalculationManual
    
    Dim cl As Range
    For Each cl In rn
        cl.Cells(1, 2).Value = Replace(cl.Cells(1, 2).Value, cl.Value, "")
    Next
    
    Application.Calculation = Application_Calculation
    Application.EnableEvents = True
End Sub
Изменено: МатросНаЗебре - 16.05.2022 17:13:02 (cl.Cells(1, 2).Value)
 
Цитата
написал:
'Выделить ячейки с заменяемыми значениями. Запустить макрос.
В том то и проблема, что таких ячеек много и их скрипту надо в первую очередь найти, а уже потом от каждого изменить ячейку справа.
 
Цитата
FunApple написал:
их скрипту надо в первую очередь найти
метод
Код
Find

Цитата
FunApple написал:
таких ячеек много
метод
Код
FindNext

Цитата
FunApple написал:
от каждого изменить ячейку справа
метод
Код
Replace
Страницы: 1
Наверх