Sub aaa1()
Dim i&, c&, p As Range
With Range("B1")
Set p = .Resize(.Offset(Rows.Count - .Row).End(xlUp).Row, .Offset(, Columns.Count - .Column).End(xlToLeft).Column)
p.Interior.ColorIndex = xlNone
For i = 1 To p.Rows.Count - 1
If .Offset(i, 1).Value = "" Then
c = .Offset(i, 1).End(xlToRight).Column - .Column
If c <= p.Columns.Count Then .Offset(i, c).Interior.Color = vbYellow
Else
.Offset(i, 1).Interior.Color = vbYellow
End If
Next
End With
End Sub
Sub aaa2()
Dim i&, j&, p()
With Range("B1")
With .Resize(.Offset(Rows.Count - .Row).End(xlUp).Row, .Offset(, Columns.Count - .Column).End(xlToLeft).Column)
.Interior.ColorIndex = xlNone
p = .Value
End With
For i = 2 To UBound(p, 1): For j = 2 To UBound(p, 2)
If (p(i, j)) <> "" Then .Offset(i - 1, j - 1).Interior.Color = vbYellow: Exit For
Next j, i
End With
End Sub