Сравните данные с листа 1 против листа 2 - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь сравнить данные столбца A и данные столбца C на листе 1 с данными столбца A листа 2 и данными C. Если в обоих столбцах есть совпадение, тогда лист одного столбца ("F") & row = весь сопоставленный ряд листа два. Я не работал с Excel VBA в течение многих лет и не смог решить эту проблему. Первоначально я хотел сделать это, используя для каждого l oop. Не очень хочу копировать вставить. Я просто пытаюсь увидеть, соответствует ли то, что на листе 2, всем данным на исходном листе 1. Если это соответствует, поместите эти данные в столбец F на листе 1 ..

Для тех, кто не может понять. Я работал над разными кодами больше недели, и этот тоже не работает. Я пытаюсь проверить, соответствуют ли все данные на втором листе данным на первом. Что я хочу сделать:

Если ячейки на листе один столбцы A и столбцы C совпадают с ячейками на листе два столбца A и столбцы C. Затем

Скопируйте ячейки, которые соответствуют столбцам листа 2, включают столбцы B и C

Вставьте на лист один столбец F

Sample

Sub TransferCompare()
   Dim i As Long, j As Long, lastrow1 As Long, lastrow2 As Long, lastrow3 As Long
Dim OutputRow As Long
Dim bnk1, bnk3, qb1, qb3 As Variant



lastrow1 = Sheets("sheet1").Range("C" & Rows.Count).End(xlUp).row
lastrow2 = Sheets("Sheet2").Range("C" & Rows.Count).End(xlUp).row

For i = 3 To lastrow1
    bnk1 = Sheets("Sheet1").Cells(i, 1).Value
        bnk3 = Sheets("Sheet1").Cells(i, 3).Value
            OutputRow = i

For j = 3 To lastrow2
    qb1 = Sheets("Sheet2").Cells(j, 1).Value
        qb3 = Sheets("Sheet2").Cells(j, 3).Value

            If bnk1 = qb1 And bnk3 = qb3 Then
                Sheets("Sheet1").Cells(OutputRow, 6).Resize(ColumnSize:=3).Value = _
                Sheets("Sheet2").Cells(j, 1).Resize(ColumnSize:=3).Value

j = j + 1

    OutputRow = OutputRow + 1 'increase row counter

            End If

Next j
Next i
End Sub

1 Ответ

0 голосов
/ 30 марта 2020

Вам нужно вставить еще один счетчик в четыре строки вашего подсчета, например. OutputRow:

Например,

Dim OutputRow As Long
OutputRow = 3 'start output in row 3

и следующие параметры тоже необходимо настроить

If bnk1 = qb1 And bnk3 = qb3 Then
    Sheets("Sheet1").Cells(OutputRow, 6).Resize(ColumnSize:=3).Value = Sheets("Sheet2").Cells(i, 1).Resize(ColumnSize:=3).Value

    OutputRow = OutputRow + 1 'increase row counter
End If        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...