Если вы хотите преобразовать текст нижнего или верхнего индекса в соответствующую разметку HTML, создайте функцию VBA(нажмите ALT+F11, чтобы перейти в редактор) с помощью этого кода:
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
использование
Предполагая, что A1 содержит строку C 2 O 3. Введите эту формулу в пустую ячейку:
=subtohtml(A1)
Это должно показать это в ячейке в результате:
C<sub>2</sub>O<sup>3</sup>
Замените имя функции, если хотите. Я не мог придумать более изящного. :D AFAIK, нет решения, которое не включает VBA; так как вам придется пройти через каждый символ в ячейке и проверить его регистр или формат шрифта.
Изменить:я предположил, что ваши тексты не будут содержать каких-либо смежных символов суб / верхний индекс.На всякий случай я вставил некоторый код, который позаботился бы о строках, которые имеют смежные символы суб / верхний индекс, например CO 20.