código VBA para sobrescrever um número após o ponto decimal

0

Qual será o código do VBA para detectar um ponto decimal de um número em uma célula e depois sobrescrever os números após o decimal?

Por exemplo, no número 3.45 eu desejo sobrescrever 45 e então remover o ponto decimal.

Eu sei como alterar o valor das células, mas não entendo como manipular a string para incluir sobrescritos.

    
por cubic 29.11.2015 / 07:05

1 resposta

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

Acredito que a maior parte disso seja autoexplicativa.

Left(ActiveCell.Value, i - 1) & Right(ActiveCell.Value, Length - i)

reconstrói o conteúdo da célula com a substring à esquerda do . (no seu exemplo, 3 ) concatenada com a substring à direita do . ( 45 ), deixando de fora o . em si. Eu coloquei um ' na frente dele para transformá-lo em texto - aparentemente você não pode formatar caracteres individuais em um valor numérico. Eu configurei o alinhamento horizontal para a direita porque isso é normal para números, mas a célula agora é texto e o padrão é alinhado à esquerda.

    
por 29.11.2015 / 08:53