UPDATE: Here is a quick little example I put together to test the technique, and it worked as expected...
Option Explicit
Sub Test()
Dim MyRange As Range, Cell As Range
Dim Temp As String
Dim Total_Rows As Long
Total_Rows = Cells(Rows.Count, 3).End(xlUp).Row
Set MyRange = Range("A1:C" & Total_Rows)
For Each Cell In MyRange
Cell.Value = AddShrimp(Cell.Value)
Next Cell
End Sub
'Bubba Gump Function
Public Function AddShrimp(InputValue As String) As String
AddShrimp = InputValue & " Shrimp"
End Function
Before: 
After: 
ORIGINAL RESPONSE: Make sure you define the Range you're going to iterate through like this:
For Each C In Range("A3:C" & Total_Rows)
C.Value = FixID(C.Value)
Next C
I would probably add Option Explicit to the top of your routine as well, and declare all your variables up-front too (to prevent confusion, typo-related errors etc.):
Option Explicit
Sub Test()
Dim Total_Rows As Long
Dim C As Range, TotalRange As Range
Total_Rows = Cells(Rows.Count, 3).End(xlUp).Row
Set TotalRange = Range("A3:C" & Total_Rows)
For Each C In TotalRange
C.Value = FixID(C.Value)
Next C
End Sub
FixID?