|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
Sub 批量上标test()
'------------------------------------上面这部分主要是把原文字和上下标存入数组
Dim doc As Document, rCount%, i%, n%
Dim Str_Original() As String, Str_Superscript() As String, Str_Subscript() As String
Set doc = ActiveDocument: n = 1
rCount = doc.Tables(1).Rows.Count
For i = 2 To rCount
If doc.Tables(1).Cell(i, 1).Range.Text <> Chr(13) & Chr(7) Then
ReDim Preserve Str_Original(1 To n)
ReDim Preserve Str_Superscript(1 To n) '上标
ReDim Preserve Str_Subscript(1 To n) '下标
Str_Original(n) = Split(doc.Tables(1).Cell(i, 1).Range.Text, Chr(13))(0)
Str_Superscript(n) = Split(doc.Tables(1).Cell(i, 2).Range.Text, Chr(13))(0)
Str_Subscript(n) = Split(doc.Tables(1).Cell(i, 3).Range.Text, Chr(13))(0)
Debug.Print "原文字:" & Str_Original(n) & "," & "上标:" & Str_Superscript(n) & "," & "下标:" & Str_Subscript(n)
n = n + 1
End If
Next i
'------------------------------------下面这部分主要遍历组数,用查找替换的方式分别对字符串上下标
Dim Str_Start&, Str_End&, Rng As Range
For i = 1 To UBound(Str_Original)
With doc.Content.Find
.Text = Str_Original(i)
Do While .Execute
Str_Start = .Parent.Start: Str_End = .Parent.End
If Str_Superscript(i) <> "" Then
Set Rng = doc.Range(Str_Start, Str_End)
With Rng.Find
.Text = Str_Superscript(i)
.Replacement.Font.Superscript = True
.Execute Replace:=wdReplaceAll
End With
End If
If Str_Subscript(i) <> "" Then
Set Rng = doc.Range(Str_Start, Str_End)
With Rng.Find
.Text = Str_Subscript(i)
.Replacement.Font.Subscript = True
.Execute Replace:=wdReplaceAll
End With
End If
Loop
End With
Next i
End Sub
想要指定或者批量对文件操作的话,自己改吧。 |
评分
-
1
查看全部评分
-
|