Код для сравнения со столбцами, поиска различий и вставки их в новый столбец - PullRequest
0 голосов
/ 20 июня 2019

Я просто пытаюсь сравнить столбцы A и D и посмотреть, есть ли какое-либо значение в A, которого нет в D. Затем я хочу скопировать это значение и соседнюю ячейку, столбец B, и вставить их в столбцы G и H.

.

Например, на фотографии ожидаемый результат будет wilsona в G3 и Last, First2 в H3. Количество строк будет переменным, и A и D, вероятно, никогда не будут иметь одинаковое количество строк.

Все, что у меня есть, это код ниже. Проблема в том, что он сравнивает, например, A1 с D1 вместо всего диапазона D:

Dim i As Integer
i = 1
For i = 3 To 20
    If (Range("A" & i).Select <> Range("D" & i).Select) Then
        Range("A" & i).Select
        Selection.Copy
        Range("G" & i).Select
        ActiveSheet.Paste
        Range("B" & i).Select
        Selection.Copy
        Range("H" & i).Select
        ActiveSheet.Paste
    End If
Next i

Пример:

Example

1 Ответ

0 голосов
/ 20 июня 2019

Это должно работать для вашего сценария:

Sub Macro1()

Dim ws as Worksheet
set ws = ThisWorkbook.Worksheets("Compare")

Dim rngA As Range, rngD as Range, MySel as Range

Set rngA = ws.Range("A3", Range("A" & Rows.Count).End(xlUp))
Set rngD = ws.Range("D3", Range("D" & Rows.Count).End(xlUp))

For Each cell In rngA
    If IsError(Application.Match(cell.Value, rngD, 0)) Then
        If MySel Is Nothing Then
            Set MySel = cell.Resize(1,2)
        Else
            Set MySel = Union(MySel, cell.Resize(1,2))
        End If
    End If
Next cell

If Not MySel Is Nothing Then MySel.Copy Destination:= ws.Range("G3")
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...