Была задача для 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) — добавляем новое удостоверение.