Создать файл с актуальной информацией - VBA
Формулировка задачи:
Добрый вечер!
Имеется excel файл, напечатанного ниже формата:
Столбец "B" - наименование товара;
Столбец "C" - seo товара;
Столбец "D" - наименование товара;
Столбец "E" - seo товара.
Напишите пожалуйста макрос который:
Поочередно возьмёт ячейку столбца "B" - это наименование товара, который необходимо найти в массиве столбца "D", после найденного совпадения заменить значение seo в соседней ячейке искомого столбца "B" (в столбце "C"), на то, которое записано напротив найденного наименования столбца "D" (в столбце "E").
К примеру, исходник:
"B2" - Трактор 1 | "C2" - Трактор Старый | "D6" - Трактор 1 | "E6" Трактор Красный
К примеру, необходимый результат:
"B2" - Трактор 1 | "C2" - Трактор Красный | "D6" - Трактор 1 | "E6" Трактор Красный
P.S. Поменялось содержание ячейки "C2". При условии, что значение не найдено, необходимо оставить старое значение в столбце "C2".
Прикрепляю в файле во вложении, excel файл с поддержкой макросов в котором прописана логика с формулами, напишите пожалуйста макрос. У меня меняется файл исходник и количество заполненных строк. Имеет смысл хранить макрос в библиотеке.
Решение задачи: «Создать файл с актуальной информацией»
textual
Листинг программы
Sub cc() Dim A, B, i&, j& With ActiveSheet A = .Range("b1", .Range("c:c").End(xlDown)) B = .Range("d1", .Range("e:e").End(xlDown)) For i = 2 To UBound(A, 1) For j = 2 To UBound(B, 1) If A(i, 1) = B(j, 1) Then A(i, 2) = B(j, 2): Exit For Next j Next i .Range("b1", .Range("c:c").End(xlDown)) = A End With End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д