L oop в VBA, а не на рабочем листе:
Sub faster()
Dim arr()
arr = Range("A3:B1000")
For i = LBound(arr, 1) To UBound(arr, 1)
If arr(i, 2) = "Monday" Then arr(i, 1) = "Substract"
Next i
Range("A3:B1000") = arr
End Sub
РЕДАКТИРОВАНИЕ № 1:
Эта версия относится к озабоченности BigBen
о том, что столбец B не следует перезаписывать, чтобы сохранить какие-либо формулы в этом столбце. Здесь перезаписывается только столбец A :
Sub faster2()
Dim arr(), brr()
arr = Range("A3:A1000")
brr = Range("B3:B1000")
For i = LBound(brr, 1) To UBound(brr, 1)
If brr(i, 1) = "Monday" Then arr(i, 1) = "Substract"
Next i
Range("A3:A1000") = arr
End Sub