Application.ScreenUpdating = False
Dim ColumnOffset as Long
Dim RNG as Range
'This line is not efficient as is, because excel works better
'when you specify what kinds of variables you plan to use.
'If these values are integers use
'Dim CheckValue as Long, SetValue as Long
'If these values are decimals use
'Dim CheckValue as Double, SetValue as Double
'If they are text then use
'Dim CheckValue as String, SetValue as String
'But for now this will work:
Dim CheckValue, SetValue
'These values are used many times in the loop (once per iteration).
'For such values it is better to just store them as variables
CheckValue = Sheets("Truck Production Hourly Data").Range("AE2").Value
SetValue = Sheets("Truck Production Hourly Data").Range("AD2").Value
'Since the only difference between your 3 loops in the Offset amount,
'Lets just set the value here, so we don't have to go through the loop 3 times
'Since in your code it travels through 3 loops no matter what.
' Just in case this value could be other things set ColumnOffset to 0
'Which we will use later
Select Case Sheets("Truck Production Hourly Data").Range("AB2").Value
Case "EAST"
ColumnOffset = 1
Case "WEST"
ColumnOffset = 2
Case "NORTH"
ColumnOffset = 3
Case Else
ColumnOffset = 0
End Select
'Here we are! if ColumnOffset IS 0 (meaning AB2 is not EAST, WEST, nor NORTH)
'Then this code is not run
If ColumnOffset > 0 Then
Set RNG as Sheets("Truck Production Hourly Data").Range("B24")
Do Until RNG.Value = ""
'I'm not sure if you are using column A as a placeholder for a value
'Or if you actually want the text to appear there
'Add this line back in if it is needed
'RNG.Offset(0, -1).Value = Mid(RNG.Value, 2, 2)
'But this check will still work even without this set
If Mid(RNG.Value, 2, 2) = CheckValue Then
RNG.Offset(0, ColumnOffset) = SetValue
End If
'Move to the next one. It is only nessasary to move once per loop
'Where before you moved once to the left and then diagonal par each loop
Set RNG = RNG.Offset(1, 0)
Loop
End If
'No need to select the original sheet since you never changed sheets in the first place!
Application.ScreenUpdating = False