O objetivo deste código é iterar por uma coluna in sheet1
e verificar se cada valor corresponde aos valores em uma linha in sheet2
. Se o valor corresponder, copie 5 linhas de informações de sheet2
cima para sheet1
a linha específica em que se encontra naquele momento.
Problemas:
- Erro 1004 na primeira linha onde está a instrução if.
- Acho que
Next b
també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 Cells
em vez de Range
. Além disso, sua Next b
linha está gerando um erro porque está dentro da If
instrução aninhada. Em vez disso, você deve usar Exit For
para sair do loop For e mover a Next b
parte externa da If
instruçã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