Jack, I was just messing with Mark, but, it IS much better tho. Look at this. I tested it with 1000 cells (A1:A1000 and B1:B1000 for the second one). Compare the times.<pre>Sub TestUCase()
Dim Ar As Variant
Dim i As Long
Dim Rng As Range
Dim Cll As Range
Dim T As Long
Application.ScreenUpdating = False
'Testing For each Cll in Rng
Set Rng = Range("A1:A1000")
T = Timer
For Each Cll In Rng
Cll.Value = UCase(Cll.Value)
Next Cll
Debug.Print Timer - T
'Now, using the Array
Ar = Range("B1:B1000").Value
T = Timer
For i = LBound(Ar, 1) To UBound(Ar, 1)
Ar(i, 1) = UCase(Ar(i, 1))
Next i
Range("B1:B1000").Value = Ar
Debug.Print Timer - T
Application.ScreenUpdating = True
End Sub</pre>