Массовая замена информации в ячейках [D:BL] при выполнении условия - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день! Имеется excel файл, в оригинальном файле заполнено 50 тыс. строк x 83 столбцов (количество заполненных столбцов меняется, может быть как больше так и меньше), для примера прикладываю образец во вложении (пример исходного файла на листе 1). Содержание столбцов:

Столбец "A"

- содержит артикул (эта информация используется для понимания, к какому элементу относится информация на строке) - тобишь артикул должен остаться рядом с элементами в с которыми и был изначально;

Столбец "B"

- этот текст будет встречаться в

ячейках столбцов "D:BL"

, этот текст необходимо найти и заменить на тот, который в

ячейках столбца "C"

Столбец "C"

- этот текст должен находится в

ячейках столбцов "D:BL"

, вместо текста который мы видим в

ячейках столбца "B"

.

Столбцы "D:BL"

- основная информация в которой необходимо найти и заменить содержание, заменяем информацией со

столбца "C"

, в свою очередь

столбец "C"

привязан к

столбцу "B"

. Для более ясного понимания,

значения ячейки "B1"

дополняет

значение ячейки "C1"

... тобишь - значение

ячейки "B1"

ищет совпадение в

ячейках столбцов "D50000:BL50000"

, а после нахождения совпадения, заменяет его на информацию из

ячейки "C1"

, значение

ячейки "B2"

ищет совпадение в

ячейках столбцов "D50000:BL50000"

, а после нахождения совпадения, заменяет его на информацию из

ячейки "C2"

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

Решение задачи: «Массовая замена информации в ячейках [D:BL] при выполнении условия»

textual
Листинг программы
  1. Sub Макрос1()
  2. '
  3. ' Макрос1 Макрос
  4. ' Макрос записан 29.06.2016 (Александр)
  5. '
  6. Dim m(), rz As Range, lr, li, r
  7. With ActiveSheet
  8.     li = Cells(Rows.Count, 2).End(xlUp).Row
  9.     lr = .UsedRange.Rows.Count
  10.      m() = .Range("B1").Resize(li, 2).Value
  11.     Set rz = .Range("D1:BL" & lr)
  12.     For r = 1 To UBound(m)
  13.         rz.Replace What:=m(r, 1), Replacement:= _
  14.         m(r, 2), LookAt:=xlPart, SearchOrder:=xlByRows, _
  15.         MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
  16.     Next r
  17. End With
  18. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы