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, em seguida, 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.


Respostas:


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

Eu acredito que a maior parte disso é auto-explicativa.

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.