Сравнение двух массивов в 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д