Word中很多化学分子式,如何一次性将数字替换为下标?
时间:2009-05-18
来源:互联网
举例如上,非化学式数字不替换。
谢谢了。
作者: 水星钓鱼 发布时间: 2009-05-18
Sub 批量处理化学分子式()
Dim myRange As Range, myend As Long
'如果没有选定区域则作全文档处理
Set myRange = IIf(Selection.Type = wdSelectionIP, ActiveDocument.Content, Selection.Range)
myend = myRange.End '取得待区域的结束位置
With myRange.Find
.ClearFormatting '清除查找框格式
.Replacement.ClearFormatting '清除替换框格式
.MatchWildcards = False '不勾选“使用通配符”
.Text = "^$^#" '查找由(前)字母和(后)数字构成的内容
.Replacement.Text = ""
.Replacement.Font.Subscript = True '设置为下标形式
.Execute Replace:=wdReplaceAll
.ClearFormatting '清除查找框格式
.Replacement.ClearFormatting '清除替换框格式
.MatchWildcards = False '不勾选“使用通配符”
.Text = "^$" '查找所有字母
.Font.Subscript = True '查找所有下标形式(即查找所有下标形式的字母)
.Replacement.Text = ""
.Replacement.Font.Superscript = False '设置为非上标形式
.Replacement.Font.Subscript = False '设置为非下标形式
.Execute Replace:=wdReplaceAll
End With
End Sub
作者: tangqingfu 发布时间: 2009-05-18
作者: 水星钓鱼 发布时间: 2009-05-18

作者: 水星钓鱼 发布时间: 2009-05-18
用代码的好处是,一次成形,多次使用,提高效率!
作者: tangqingfu 发布时间: 2009-05-18
挖,还是老乡。太感动了。

作者: 水星钓鱼 发布时间: 2009-05-18
[ 本帖最后由 yc310224 于 2009-5-19 20:03 编辑 ]
作者: yc310224 发布时间: 2009-05-18
作者: kqbt 发布时间: 2009-05-19
作者: chuhaiou 发布时间: 2009-05-19
Dim x, Y, j, k As Integer
Dim m, n As Long
Dim char As String
x = Selection.Start
Y = Selection.End
For j = x To Y Step 1
Selection.Start = j - 1
Selection.End = j
char = Selection.Text
n = InStr("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ))]", char)
If n <> 0 Then
Selection.Start = j
Selection.End = j + 1
char = Selection.Text
m = InStr("0123456789", char)
If m <> 0 Then
k = 2
Selection.Font.subScript = wdToggle
Selection.Start = j
Selection.End = j + k
char = Selection.Characters(k).Text
m = InStr("0123456789-+", char)
Do While m <> 0
If char = "+" Or char = "-" Then
Selection.Start = j + k
Selection.End = j + k + 1
char = Selection.Text
m = InStr("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ(([", char)
If m <> 0 Then
GoTo LINE1
Else
Selection.Start = j - 1
Selection.End = j + k
char = Selection.Characters(1).Text
End If
If char = "O" Or char = "H" Then '与line1共同作用以防止将NH4+、AlO2-
Selection.Start = j
Selection.End = j + 1
Selection.Font.subScript = wdToggle
Selection.Font.subScript = wdToggle
Selection.Start = j + 1
Selection.End = j + k
Selection.Font.Superscript = wdToggle
GoTo LINE1
End If
Selection.Start = j
Selection.End = j + k
Selection.Font.Superscript = wdToggle
Selection.Font.Superscript = wdToggle
GoTo LINE1
End If
k = k + 1
Selection.Start = j
Selection.End = j + k
char = Selection.Characters(k).Text
If char = "-" Or char = "+" Then
Selection.Start = j
Selection.End = j + k - 2
Selection.Font.subScript = wdToggle
Selection.Font.subScript = wdToggle
Selection.Start = j + k - 2
Selection.End = j + k
Selection.Font.Superscript = wdToggle
GoTo LINE1
Else
m = InStr("0123456789", char)
End If
Loop
Selection.Start = j
Selection.End = j + k - 1
Selection.Font.subScript = wdToggle
Selection.Font.subScript = wdToggle
End If
LINE1:
Selection.Start = j
Selection.End = j + 1
char = Selection.Text
m = InStr("-", char)
If m <> 0 Then
Selection.Start = j + 1
Selection.End = j + 2
char = Selection.Text
m = InStr("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ(([", char)
If m = 0 Then
Selection.Start = j
Selection.End = j + 1
Selection.Font.Superscript = wdToggle
End If
End If
m = InStr("+", char)
If m <> 0 Then
Selection.Start = j + 1
Selection.End = j + 2
char = Selection.Text
m = InStr("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ(([+", char)
If m = 0 Then
Selection.Start = j
Selection.End = j + 1
Selection.Font.Superscript = wdToggle
End If
End If
End If
Next j
Selection.Start = Y
Selection.End = Y
End Sub
作者: chuhaiou 发布时间: 2009-05-19
作者: thinkeran 发布时间: 2009-09-17
作者: gankaoren 发布时间: 2010-11-02
收藏备用!
作者: tangqingfu 发布时间: 2010-11-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28