Thought that looked familiar - obviously you didn't quite get what the code was doing - this is the code I posted originally:
Sub GetDiffs()
Dim lRow As Long, cols As Integer, i As Integer, refArr As Variant, CompArr As Variant
Dim refSht As Worksheet, compSht As Worksheet, incr As Long
Set refSht = Sheets("Sheet1"

Set compSht = Sheets("Sheet2"

Application.ScreenUpdating = False
lRow = refSht.UsedRange.Rows.Count
cols = refSht.UsedRange.Columns.Count
incr = 1
For i = 1 To cols
refSht.Select
refArr = refSht.Range(Cells(1, i), Cells(lRow, i))
compSht.Select
CompArr = compSht.Range(Cells(1, i), Cells(lRow, i))
For x = 1 To UBound(refArr)
If refArr(x, 1) <> CompArr(x, 1) Then
With Sheets("Sheet3"

.Cells(incr, 1).Value = "R" & x + 1 & "C" & i
.Cells(incr, 2).Value = refArr(x, 1)
.Cells(incr, 3).Value = CompArr(x, 1)
incr = incr + 1
End With
Else
End If
Next
Next i
End Sub
This code assigns a RANGE of cells to an array - you are trying to assign one cell to an array. This loads a column of data (up to the last row) into each array and then compares the 2 arrays - it does this for each column in the used range - 'm not entirely sure why you have changed it as you have ??
Rgds, Geoff
[blue]Si hoc signum legere potes, operis boni in rebus Latinus alacribus et fructuosis potiri potes![/blue]
Want the
[red]best[/red] answers to your questions ? faq222-2244