Se você deseja converter texto subescrito / sobrescrito em marcação HTML correspondente, crie uma função VBA (pressione ALT + F11 para ir para o editor) com este código:
Function SubToHtml(rng As Range)
Dim c, ns As String
For i = 1 To Len(rng.Value) Step 1
c = rng.Characters(i, 1).Text
If rng.Characters(i, 1).Font.Subscript Then
ns = ns & "<sub>" & c & "</sub>"
ElseIf rng.Characters(i, 1).Font.Superscript Then
ns = ns & "<sup>" & c & "</sup>"
Else
ns = ns & c
End If
Next i
'to take care of adjacent sub/superscript characters
ns = Replace(ns, "</sub><sub>", "")
ns = Replace(ns, "</sup><sup>", "")
SubToHtml = ns
End Function
Uso
Assumindo que A1 contém a string C 2 O 3 . Insira esta fórmula em uma célula em branco:
=subtohtml(A1)
Isso deve mostrar isso na célula como resultado:
C<sub>2</sub>O<sup>3</sup>
Substitua o nome da função, se desejar. Eu não conseguia pensar em um mais chique. : D AFAIK, não há uma solução que não envolva o VBA; já que você teria que passar por cada caractere na célula e verificar seu caso ou formato de fonte.
Editar : Presumi que seus textos não conterão nenhum caractere sub / sobrescrito adjacente. Apenas no caso, insiro um código que cuida de strings com caracteres sub / sobrescritos adjacentes, como CO 20 .