Сравнение ячеек и вставка - 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