Была задача для 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) – добавляем новое удостоверение.
If you found an error, highlight it and press Shift + Enter or click here to inform us.