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