Thanks Sam,

I came up with the following, which I think does the same job

Sub Macro2()'
' Macro2 Macro
'
    Range("A1").Select
    
Do Until IsEmpty(ActiveCell)


If ActiveCell.Value >= TimeSerial(23, 0, 0) And ActiveCell.Value >= TimeSerial(7, 0, 0) Then
    ActiveCell.Offset(0, 1).Range("A1").Select
    Selection.Copy
    ActiveCell.Offset(0, 2).Range("A1").Select
    ActiveSheet.Paste
    ActiveCell.Offset(1, -3).Range("A1").Select
End If
Loop


End Sub
Although probably not as graceful as yours, although i've only been coding a few weeks and generally have no clue at all!