This should be faster since there's less looping
I used Offset row = 1 (Post#3) instead of offset row = -1 (Posts #1 and #2)
Range("B" & t).Value = Range("B" & t).Offset(-1, 4).Value ' This errors on Method of Range object Global failed
t is a Range, but you're treating it like a number. You might have meant
Range("B" & t.Row).Value = Range("B" & t.Row).Offset(-1, 4).Value
Option Explicit
Sub FillBlankRowHeaders()
Dim Rng As Range, Cll As Range
With ActiveSheet
On Error GoTo NiceExit
Set Rng = Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp)).SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
End With
For Each Cll In Rng.Cells
Cll.Value = Cll.Offset(1, 4).Value
Next
NiceExit:
End Sub