Если вы хотите преобразовать текст нижнего или верхнего индекса в соответствующую разметку 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 .