I use the following vb code every day in excel:
Sub prop()
Dim rng1 As Range, c As Range
Set rng1 = Intersect(ActiveSheet.UsedRange, [A:G,I:O,Q:IV])
If Not rng1 Is Nothing Then
For Each c In rng1
c.Value = WorksheetFunction.Proper(c.Value)
Next
End If
[P:P].Replace "non", ""
[P:P].Replace...