Макрос на VBA для Excel

Была задача для Excel: на первом листе много колонок, в том числе ФИО (1 колонка) и Удостоверения о повышении квалификации (23 колонка) (лист «Список контактов»), а на втором листе («Удостоверения») ФИО (2 колонка) и Удостоверения о повышении квалификации (9 колонка), но новые. Причём на втором листе одной ФИО соответствует одно Удостоверение. Нужно взять Удостоверение со второго листа и добавить в соответствующую ячейку первого листа.

Сделал пустой макрос привязав его запуск сочетание клавиш: Ctrl+w

Код макроса


PosStr1 = Sheets(«Список контактов»).Cells(1, 1).CurrentRegion.Rows.Count
PosStr2 = Sheets(«Удостоверения»).Cells(1, 1).CurrentRegion.Rows.Count

For i2 = 1 To PosStr2
xlist1 = Sheets(«Удостоверения»).Cells(i2, 2)

For i1 = 1 To PosStr1

xcontact = Sheets(«Список контактов»).Cells(i1, 1)

Do While xcontact = xlist1

Sheets(«Список контактов»).Cells(i1, 23) = Sheets(«Список контактов»).Cells(i1, 23) + » » + Sheets(«Удостоверения»).Cells(i2, 9)
Exit For
Loop

Next
Next


PosStr1 и PosStr2 — находим последнюю строку

For i2 = 1 To PosStr2 — начинаем проверять по очереди строки листа «Удостоверения»

xcontact = xlist1 —  находим совпадение ФИО

Sheets(«Список контактов»).Cells(i1, 23) = Sheets(«Список контактов»).Cells(i1, 23) + » » + Sheets(«Удостоверения»).Cells(i2, 9) — добавляем новое удостоверение.

Текст макроса

Author: master

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *