3

У меня есть лист XL с химическими формулами, который состоит в основном из букв с числовыми индексами и индексами. Я могу сохранить как HTML-страницу и получить элементы <sub> и <sup> html, но они скрыты под множеством других разметок и CSS.

Есть ли способ просто получить формулу для ячейки с H 2 O в виде разметки, например:

H<sub>2</sub>O

2 ответа2

3

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

1

Перейдите: Макет> Свойства ячейки> Тип шрифта

Вы должны установить флажок "Подстрочный индекс".

Источник:

http://www.helpmij.nl/forum/showthread.php/221389-Subscript-in-Excel

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .