Макрос на 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) – добавляем новое удостоверение.

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

If you found an error, highlight it and press Shift + Enter or click here to inform us.

Author: master

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

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