Copie de la hoja 2 a la hoja 1 según si los valores coinciden

Copie de la hoja 2 a la hoja 1 según si los valores coinciden

El objetivo de este código es recorrer una columna en sheet1y verificar si cada valor coincide con los valores de una fila en sheet2. Si el valor coincide, copie 5 filas de información desde sheet2arriba hasta sheet1en la fila específica en la que se encuentra en ese momento.

Problemas:

  • Error 1004 en la primera fila donde está la declaración if.
  • Creo que Next btambién arrojará un error.

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

Respuesta1

Para especificar la fila y la columna de un rango como números, debe utilizar Cellsen lugar de Range. Además, su Next blínea arroja un error porque está dentro de la Ifdeclaración anidada. En su lugar, debería utilizar Exit Forpara salir del bucle For y mover el Next bexterior de la Ifdeclaración.

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

información relacionada