Сравнение ячеек и вставка - VBA

Узнай цену своей работы

Формулировка задачи:

Доброго дня! Просьба помочь. Нужен макрос. Есть два листа exel необходимо чтобы все ячейки столбца А,Листа2(всего их 370) сравнивались со всеми ячейками листа1 и если сравнение истинно, то значение Аn Листа1 (n - номер ячейки в котором нашлось искомое значение), вставлялось в ячейку Bm листа2 (m номер ячейки которую сравниваем). Все значения ячеек строковые. В листе1 может быть несколько значений столбца А листа2, соотвественно копировать надо несколько ячеек Аn Листа1. Вроде понятно описал) Буду очень благодарен за помощь.

Решение задачи: «Сравнение ячеек и вставка»

textual
Листинг программы
  1. Sub Sootvet_A()
  2.     Dim i&, j&, b(), sh As Worksheet
  3.     With CreateObject("Scripting.Dictionary")
  4.         a = Sheets("Лист1").UsedRange
  5.         For i = 1 To UBound(a)
  6.             For j = 2 To UBound(a, 2)
  7.                 If Not IsEmpty(a(i, j)) Then
  8.                     If .exists(a(i, j)) Then
  9.                         .Item(a(i, j)) = .Item(a(i, j)) & ";" & a(i, 1)
  10.                     Else
  11.                         .Item(a(i, j)) = a(i, 1)
  12.                     End If
  13.                 End If
  14.             Next
  15.         Next
  16.         For Each sh In Sheets
  17.             If sh.Name <> "Лист1" Then
  18.                 a = sh.UsedRange
  19.                 ReDim b(1 To UBound(a), 1 To 1)
  20.                 For i = 1 To UBound(a)
  21.                     If .exists(a(i, 1)) Then b(i, 1) = .Item(a(i, 1))
  22.                 Next
  23.                 sh.Cells(1, 2).Resize(UBound(b), 1) = b
  24.             End If
  25.         Next
  26.     End With
  27. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы