Copie da planilha2 para a planilha1 com base se os valores corresponderem

Copie da planilha2 para a planilha1 com base se os valores corresponderem

O objetivo deste código é iterar por uma coluna in sheet1e verificar se cada valor corresponde aos valores em uma linha in sheet2. Se o valor corresponder, copie 5 linhas de informações de sheet2cima para sheet1a linha específica em que se encontra naquele momento.

Problemas:

  • Erro 1004 na primeira linha onde está a instrução if.
  • Acho que Next btambém gerará um erro

Código VBA:

For i = 8 To 17
    For b = 7 To 21
        If Sheets("Sheet1").Range(i, 2).Value = Sheets("Sheet2").Range(b, 1).Value Then
        Sheets("Sheet2").Range("b,1:b,7").Copy Sheets("Sheet1").Range(i, 6)
        Next b
        End If
Next i

Responder1

Para especificar a linha e a coluna de um intervalo como números, você deve usar Cellsem vez de Range. Além disso, sua Next blinha está gerando um erro porque está dentro da Ifinstrução aninhada. Em vez disso, você deve usar Exit Forpara sair do loop For e mover a Next bparte externa da Ifinstrução.

For i = 8 To 17
    For b = 7 To 21
        If Sheets("Sheet1").Cells(i, 2).Value = Sheets("Sheet2").Cells(b, 1).Value Then
            Range(Sheets("Sheet2").Cells(b, 1), Sheets("Sheet2").Cells(b, 7)).Copy Sheets("Sheet1").Cells(i, 6)
            Exit For
        End If
    Next b
Next i

informação relacionada