Here is one way to move your data?
Sub Get_Data()
Dim cell As Object
Dim r As Range
Dim lrow As Long
Dim x As Integer, i As Integer
lrow = Sheets(1).Range("A65536").End(xlUp).Row
Set r = Sheets(1).Range("A3:A" & lrow)
For Each cell In r
myid = cell.Offset(, 1).Value
myval = cell.Offset(, 2).Value
With Sheets(2)
Set rFound = .UsedRange.Find(What:=myid, After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not rFound Is Nothing Then
rFound.Offset(, 1).Value = myval
End If
End With
Next cell
Set r = Sheets(1).Range("E3:E" & lrow)
For Each cell In r
myid = cell.Offset(, 1).Value
myval = cell.Offset(, 2).Value
With Sheets(2)
Set rFound = .UsedRange.Find(What:=myid, After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not rFound Is Nothing Then
rFound.Offset(, 2).Value = myval
End If
End With
Next cell
Set r = Sheets(1).Range("I3:I" & lrow)
For Each cell In r
myid = cell.Offset(, 1).Value
myval = cell.Offset(, 2).Value
With Sheets(2)
Set rFound = .UsedRange.Find(What:=myid, After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not rFound Is Nothing Then
rFound.Offset(, 3).Value = myval
End If
End With
Next cell
lrow = Sheets(2).Range("B65536").End(xlUp).Row
With Sheets(2)
For i = 3 To 5
For x = 3 To lrow
If Sheets(2).Cells(x, i).Value = vbNullString Then
Sheets(2).Cells(x, i).Value = 0
End If
Next x
Next i
End With
End Sub
...
Bookmarks