решение1
На основе приложенного снимка экрана я обнаружил, что у вас есть два макроса VBA, и вы пытаетесь сравнить два столбца и скопировать несовпадающие значения на другой лист.
Для этого вам понадобится метод объединения двух макросов в один.
Я хотел бы предложить метод, который сравнит два столбца в исходном листе на предмет несовпадающих значений и скопирует данные в другой лист.
Макрос применит цветовой формат к строкам, а после копирования изменит формат на противоположный для обоих столбцов.
Sub HighlightColumnDifferences()
Dim bothcolumns As Range, i As Integer
Set bothcolumns = Selection
With bothcolumns
For i = 1 To .Rows.Count
If Not StrComp(.Cells(i, 1), .Cells(i, 2), vbBinaryCompare) = 0 Then
Range(.Cells(i, 1), .Cells(i, 2)).Interior.ColorIndex = 6
End If
Next i
End With
Call Copy
Application.CutCopyMode = False
End Sub
Sub Copy()
Dim i As Long
For i = 1 To 10
If Sheets("Sheet1").Range("A" & i).Interior.ColorIndex = xlNone Then
Range("A" & i).Copy Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
End If
If Sheets("Sheet1").Range("B" & i).Interior.ColorIndex = xlNone Then
Range("B" & i).Copy Destination:=Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Offset(1)
End If
Next i
Worksheets("Sheet1").Activate
Range("A1:B10").ClearFormats
Application.CutCopyMode = False
End Sub
Как это работает:
- Копировать&Вставитьоба кода являются стандартными модулями.
- Выберите данные из обоих столбцов
Sheet 1
, которые вы хотите сравнить. - БЕГАТЬ
HighlightColumnDifferences
Макро.
Примечание.
- Вы можете выбрать любые два столбца для сравнения, а не только A и B.
- Вы можете настроить значения для
For i = 1 To 10
иSheet Name
диапазона данныхA1:B10
во втором макросе.