Подписи и верхние индексы в Excel

2601
Graeme

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

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

H<sub>2</sub>O 
3

2 ответа на вопрос

3
Ellesa

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

Это выглядит именно то, что мне нужно. Спасибо! Graeme 12 лет назад 0
1
RobinJ

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

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

Источник:

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

Да, но как мне сохранить это в форме H 2 O для импорта в базу данных? Graeme 12 лет назад 0
База данных? Разве это не доступ вместо Excel? В таком случае: не знаю, как это сделать. RobinJ 12 лет назад 0

Похожие вопросы