Сравнение ячеек и вставка - VBA
Формулировка задачи:
Доброго дня!
Просьба помочь.
Нужен макрос.
Есть два листа exel необходимо чтобы все ячейки столбца А,Листа2(всего их 370) сравнивались со всеми ячейками листа1 и если сравнение истинно, то значение Аn Листа1 (n - номер ячейки в котором нашлось искомое значение), вставлялось в ячейку Bm листа2 (m номер ячейки которую сравниваем). Все значения ячеек строковые. В листе1 может быть несколько значений столбца А листа2, соотвественно копировать надо несколько ячеек Аn Листа1.
Вроде понятно описал)
Буду очень благодарен за помощь.
Решение задачи: «Сравнение ячеек и вставка»
textual
Листинг программы
- Sub Sootvet_A()
- Dim i&, j&, b(), sh As Worksheet
- With CreateObject("Scripting.Dictionary")
- a = Sheets("Лист1").UsedRange
- For i = 1 To UBound(a)
- For j = 2 To UBound(a, 2)
- If Not IsEmpty(a(i, j)) Then
- If .exists(a(i, j)) Then
- .Item(a(i, j)) = .Item(a(i, j)) & ";" & a(i, 1)
- Else
- .Item(a(i, j)) = a(i, 1)
- End If
- End If
- Next
- Next
- For Each sh In Sheets
- If sh.Name <> "Лист1" Then
- a = sh.UsedRange
- ReDim b(1 To UBound(a), 1 To 1)
- For i = 1 To UBound(a)
- If .exists(a(i, 1)) Then b(i, 1) = .Item(a(i, 1))
- Next
- sh.Cells(1, 2).Resize(UBound(b), 1) = b
- End If
- Next
- End With
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д