Сравнение двух массивов в excel - VBA

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

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

Всем добрый вечер! очень нужна Ваша помощь. Есть два массива (пример приложил, размерность у них условная, на самом деле 10 тыс. и более записей в каждом), если их сравнить, в предыдущем массиве (в январе) произошли изменения (по данным последующего массива один из объектов исчез, он отмечен желтым цветом и обозначен "1"). Возможно сделать макрос для автоматизации этого процесса? Чтобы "ушедшие" объекты как-то выделялись, к примеру, единицами? Опираться при сравнении на цены и бюджеты объектов нельзя, т.к. их колебания условно составляют +-5%. Если конечно это никак нельзя заложить в код...

Решение задачи: «Сравнение двух массивов в excel»

textual
Листинг программы
Sub test()
  Dim ws As Worksheet, a, g, f, aLR&, gLR&, i&, j&, flag As Boolean
  
  Set ws = ThisWorkbook.Worksheets("Лист1")
  
  aLR = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
  gLR = ws.Cells(ws.Rows.Count, 7).End(xlUp).Row
  a = ws.Range(ws.[a2], ws.Cells(aLR, 3)).Value
  g = ws.Range(ws.[g2], ws.Cells(gLR, 9)).Value
  ReDim f(1 To gLR - 1, 1 To 1)
  
  For i = 1 To UBound(g, 1)
    j = 1: flag = False
    Do Until flag Or j > UBound(a, 1)
      If g(i, 1) = a(j, 1) Then
        If g(i, 2) = a(j, 2) Then
          If Abs(a(j, 3) / g(i, 3) - 1) < 0.03 Then flag = True
        End If
      End If
      j = j + 1
    Loop
    If Not flag Then f(i, 1) = 1
  Next
  
  ws.Range(ws.[f2], ws.Cells(gLR, 6)).Value = f
End Sub

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


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

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

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