EXCEL - VBA - копировать пасту между 3 листами - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь скопировать / вставить информацию между тремя разными листами. Первые два я хочу сравнить только с информацией If, и если условие выполнено, то из листа n2 скопируйте все строки на третий лист. Моя проблема в том, что код находит только первое значение и останавливается. Вот код.

Sub fallidas2()

Dim iLastRow As Long
    Dim I As Long
    Dim l As Long
    Dim erow As Long

    erow = Sheets("Failed_Trades").Range("A" & Rows.Count).End(xlUp).Row + 1

    Workbooks("modelo titulos UK").Worksheets("xlsConsultaConciliacion").Select

    iLastRow = Worksheets("xlsConsultaConciliacion").Cells(Rows.Count, "C").End(xlUp).Row
    iLastRow2 = Worksheets("Fallidas").Cells(Rows.Count, "C").End(xlUp).Row
    For I = 3 To iLastRow
      For l = 2 To iLastRow2
        If Sheets("xlsConsultaConciliacion").Cells(I, 1) = Sheets("Fallidas").Cells(l, 2) Then
          Worksheets("Fallidas").Rows(I).EntireRow.Copy _
                    Destination:=Sheets("Failed_Trades").Range("A" & erow)

        End If
      Next l
    Next I

End Sub

1 Ответ

0 голосов
/ 04 мая 2018

Вам нужно увеличить erow как часть оператора If.Я также включил туда инструкцию Exit For, чтобы она не продолжала поиск по второму листу после того, как найдено первое совпадение.Но, может быть, вы хотите, чтобы он нашел дополнительные совпадения и повторно заполнял одну и ту же информацию на третьем листе?

    If Sheets("xlsConsultaConciliacion").Cells(i, 1) = Sheets("Fallidas").Cells(l, 2) Then
        Worksheets("Fallidas").Rows(i).EntireRow.Copy Destination:=Sheets("Failed_Trades").Range("A" & erow) 
        erow = erow + 1
        Exit For
    End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...