如果有人需要这个问题的答案..这里是我做过什么,
Selection.MoveUp Unit:=wdParagraph, Count:=2000
Dim vFindText As Variant
Dim vReplText As Variant
Dim i As Long
vFindText = Array("\[", "\] ", " \*")
vReplText = Array("", "", "")
With Selection
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindStop
.MatchWholeWord = True
.MatchSoundsLike = False
.MatchAllWordForms = False
.MatchWildcards = True
.Format = True
.MatchCase = True
For i = 0 To UBound(vFindText)
.Text = vFindText(i)
.Replacement.Text = vReplText(i)
.Execute Replace:=wdReplaceAll
Next i
.Text = "[0-9]{1,}"
.Replacement.Text = "^&"
.Replacement.Font.Superscript = True
.Execute Replace:=wdReplaceAll, MatchWildcards:=True
End With
End With
MsgBox "Numbers has finshed , calling double1"
Call Numbers1
这将引发所有的数字变成标然后调用子Numbers1
Sub Numbers1()
Dim chr As Range
Dim firstChar As Word.Range
Dim test As Integer
test = 0
Dim firstAlphabet As Range
Selection.SetRange Start:=0, End:=100000
Set firstAlphabet = Selection.Range
For i = 2 To 1600
test = test + 2
Set firstChar = Selection.Characters(test)
If IsNumeric(firstChar.Text) Then firstChar.Font.Subscript = True
On Error Resume Next
Next i
End Sub
这将把所有的数字交替换成下标和上标...... 这段代码可以明显优化,,,目前执行给定工作需要很长时间,,,但是在整天搜索工作方法后,这是该工程
希望这将有助于将有人谈到谁找到这个:)
'测试=真 昏暗CHR作为范围 对于每个CHR在ActiveDocument.Range.Characters 如果则IsNumeric(唯一chr.Text)和test = True然后chr.Font.Subscript = True并且test = False 如果IsNumeric(chr.Text)和t EST = false,那么chr.Font.Superscript = True和测试=真 接下来chr'我试过这样......但它不会工作,,请在此 –
帮助'和'是一个逻辑运算符,而不是东西来连接线。像这样使用'And'将导致VBA将这两个语句评估为布尔值,而不是设置属性。 – arcadeprecinct
您能否为我构建这个,我已经尝试过了,但是,这对我来说可能会有所帮助 –