Всем привет! Есть 2 столбца с данными на одной странице и два столбца на другой странице, между ними надо провести сравнение и там где оно происходит вывести в столбец С единицу. Есть макрос который делает сравнение по двум столбцам.
Результатом в столбце С на первой странице должна выводиться единичка напротив строки ПЯТЬ 5, т.к. только она совпадает на двух листах.
Результатом в столбце С на первой странице должна выводиться единичка напротив строки ПЯТЬ 5, т.к. только она совпадает на двух листах.
Код |
---|
Sub compare() Dim a, b, c, d, e, iLastrow As Long, i As Long Dim tm: tm = Timer '1. With Sheet2 iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row b = Range(.[A1], .Range("A" & iLastrow)).Value 'd = Range(.[B1], .Range("B" & iLastrow)).Value End With With Sheet1 iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row a = Range(.[A1], .Range("A" & iLastrow)).Value 'e = Range(.[B1], .Range("B" & iLastrow)).Value End With '2. ReDim c(1 To UBound(a), 1 To 1) '3. With CreateObject("Scripting.Dictionary") For i = 1 To UBound(b) .Item(b(i, 1)) = CStr(1) Next '4. For i = 1 To UBound(a) If .exists(a(i, 1)) Then c(i, 1) = 1 Next End With '5. With Sheet1 Range(.[C1], .Range("C" & iLastrow)).Value = c End With MsgBox Timer - tm End Sub |