我有一张带有化学式的 XL 表 - 基本上只是带有数字下标和上标的字母。我可以将其保存为 html 页面并获取 <sub> 和 <sup> html 元素,但它们被埋在许多其他标记和 css 之下。
有没有办法可以简单地获取带有 H 2 O 作为标记的单元格的公式,如下所示:
H<sub>2</sub>O
答案1
如果您希望将下标/上标文本转换为相应的 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 据我所知,没有不涉及 VBA 的解决方案;因为您必须检查单元格中的每个字符并检查其大小写或字体格式。
编辑: 我假设您的文本不会包含任何相邻的下标/上标字符。为了以防万一,我插入了一些代码来处理具有相邻下标/上标字符的字符串,例如 CO 20。
答案2
转至:布局 > 单元格属性 > 字体类型
您应该选中“下标”框。
来源:
http://www.helpmij.nl/forum/showthread.php/221389-Subscript-in-Excel