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
Я считаю, что большая часть этого говорит сама за себя.
Left(ActiveCell.Value, i - 1) & Right(ActiveCell.Value, Length - i)
перестраивает содержимое ячейки с подстрокой слева от .
(в вашем примере 3
) объединены с подстрокой справа от .
(45
), опуская .
сам.
Я застрял '
ним , чтобы превратить его в текст - по- видимому , вы не можете форматировать отдельные символы в числовом значении.
Я установил горизонтальное выравнивание вправо, потому что это нормально для чисел, но ячейка теперь текстовая и по умолчанию выравнивается по левому краю.