Here is the 3rd solution. Ideally, as I explained in post #6, once the data is "fixed" up, you can use the Change event to add stamps as 1st is created. Just add the Countif part to each case as in post #2. It just depends on your needs.
Here, I used the range find method to find the first. I passed the found range to the called Sub in the Application.Run. You probably don't need that so remove the passed parameter and the test stamp subs that I added. You may need to modify the 2nd dimension value for the stamp subs in the array if in another Module.
Sub GetMeSetup()
Dim r As Range, f As Range, a, i As Integer
With Sheet1
Set r = .Range("B2", .Cells(.Rows.Count, "B").End(xlUp))
End With
ReDim a(1 To 2, 1 To 3)
a(1, 1) = "4W": a(2, 1) = "TimeStampWest"
a(1, 2) = "4E": a(2, 2) = "TimeStampEast"
a(1, 3) = "CCU": a(2, 3) = "TimeStampCCU"
For i = 1 To UBound(a, 2)
Set f = r.Find(a(1, i), r(r.Cells.Count))
If Not f Is Nothing Then Application.Run a(2, i), f
Next i
End Sub
Sub TimeStampWest(ar As Range)
ar.Offset(, 1).Value = "W " & Date
End Sub
Sub TimeStampEast(ar As Range)
ar.Offset(, 1).Value = "E " & Date
End Sub
Sub TimeStampCCU(ar As Range)
ar.Offset(, 1).Value = "C " & Date
End Sub