not sure about your exact requirement
try
Sub test()
Dim r As Range, rng1() As Range, rng2() As Range
Dim i, ii, x
For Each r In Range("b5:b12")
If r.Font.Color = vbRed Then
ReDim Preserve rng1(i)
Set rng1(i) = r
i = i + 1
End If
Next
For Each r In Range("h5:h12")
If r.Font.Color = vbBlack Then
ReDim Preserve rng2(ii)
Set rng2(ii) = r
ii = ii + 1
End If
Next
If i = Empty Or ii = Empty Then Exit Sub
x = Application.Min(i, ii)
x = x - 1
For i = 0 To x
temp = rng1(i).Value
rng2(i).Copy rng1(i)
rng2(i).Value = temp
rng2(i).Font.Color = vbRed
Next
End Sub