Каким будет код VBA для обнаружения десятичной точки числа в ячейке и последующего надстрочного индекса после десятичного числа?

Например, в числе 3.45 я хочу надстрочный индекс 45 и затем удалить десятичную точку.

Я знаю, как изменить значение ячеек, но не понимаю, как манипулировать строкой, чтобы включить верхние индексы.

1 ответ1

1
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), опуская . сам.  Я застрял ' ним , чтобы превратить его в текст - по- видимому , вы не можете форматировать отдельные символы в числовом значении.  Я установил горизонтальное выравнивание вправо, потому что это нормально для чисел, но ячейка теперь текстовая и по умолчанию выравнивается по левому краю.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .