Hola Elsa Matilde:
No logré modificar la macro que me enviaste para que reemplaze todas las abreviaturas que hay en una cadena; solo lo hace con la primera palabra de la cadena.
Basándome en esa macro y en otra que encontré en la página que indico, hice la siguiente para reemplazar los nombres incorrectos (más de una palabra como A BEELO en lugar de ANDRES BELLO) pero también me supera , solo lo hace si esas palabras son las primeras de la cadena
Sub reemplazanombres()
'x JCP basandose en Elsamatilde y https://msdn.microsoft.com/es-es/library/office/ff839746.aspx
Dim n As Range
'recorre col B, busca en tablas los textos que pueda
Sheets("Nombres").Select
Range("a2").Select
'recorre la col hasta encontrar un vacío
While ActiveCell <> ""
'recorre la cadena buscando el nombre mal escrito
nombremalo = ActiveCell.Value
nombrecorrecto = ActiveCell.Offset(0, 1)
Z = Len(nombrecorrecto)
With Sheets("Procedimiento").Range("A:A")
Set c = .Find(nombremalo, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
' Do
NuevoTexto = Application.WorksheetFunction.Substitute(c, nombremalo, nombrecorrecto)
c.Value = NuevoTexto
Set c = .FindNext(c)
' Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
ActiveCell.Offset(1, 0).Select
Wend
End Sub