Your first sample didn't have any blank lines
Since this one does, the macro has to do things a little differently
Option Explicit
Sub HighlightChanges()
Dim wsOld As Worksheet, wsNew As Worksheet
Dim v As Variant
Dim i As Long, rowLastOld As Long, rowLastNew As Long
Application.ScreenUpdating = False
Set wsOld = Worksheets("Old")
Set wsNew = Worksheets("New")
rowLastOld = wsOld.Cells(wsOld.Rows.Count, 1).End(xlUp).Row
rowLastNew = wsNew.Cells(wsNew.Rows.Count, 1).End(xlUp).Row
For Each v In Array(1, 2, 3, 22, 23, 25)
For i = 5 To Application.Max(rowLastOld, rowLastNew)
If wsOld.Cells(i, v).Value = wsNew.Cells(i, v).Value Then
wsNew.Cells(i, v).Interior.Color = vbGreen
Else
wsNew.Cells(i, v).Interior.Color = vbRed
End If
Next i
Next
Application.ScreenUpdating = True
End Sub