Length = Len(ActiveCell.Value)
For i = 1 To Length
If (Mid(ActiveCell.Value, i, 1) = ".") Then
ActiveCell.Value = "'" & Left(ActiveCell.Value, i - 1) & Right(ActiveCell.Value, Length - i)
ActiveCell.Characters(i, Length - i).Font.Superscript = True
ActiveCell.HorizontalAlignment = xlRight
Exit For
End If
Next i
Creo que la mayor parte de esto se explica por sí mismo.
Left(ActiveCell.Value, i - 1) & Right(ActiveCell.Value, Length - i)
reconstruye el contenido de la celda con la subcadena a la izquierda de .
(en su ejemplo 3
) concatenada con la subcadena a la derecha de .
( 45
), dejando fuera la .
propia. Pegué un '
frente para convertirlo en texto, aparentemente no puede formatear caracteres individuales en un valor numérico. Establecí la alineación horizontal a la derecha porque eso es normal para los números, pero la celda ahora es texto y por defecto está alineada a la izquierda.