This seems easy but I couldn't find an answer.
Each solution either replaced part of the cell, or replaced case sensitive but then the replace text had to equal the value in the cell
If InStr(1, CurColumnName, ReplaceFrom, vbTextCompare) <> 0 Then
'wksC.Range(CurColumnLetter & "1").Value = Replace(CurColumnName, ReplaceFrom, ReplaceTo)
wksC.Range(CurColumnLetter & "1").Replace what:=ReplaceFrom, replacement:=ReplaceTo, MatchCase:=True
End If
Let's say my CurColumnName is Mp3npi, my ReplaceFrom is npi, my ReplaceTo is NPI.
The code goes into the loop, goes through the range.replace, but the cell isn't replaced, it remains as is.