Sub ColorNumbers() Dim doc As Document Dim rng As Range Dim num As Variant Dim color As Variant Dim startpos As Long Dim endpos As Long Set doc = ActiveDocument Set rng = doc.Content With rng.Find .ClearFormatting .MatchWildcards = True .text = "[0-9]{1,}" .Forward = True .Wrap = wdFindStop Do While .Execute num = rng.text Select Case num Case 0 color = RGB(0, 0, 0) ' 黑色 Case 1 color = RGB(255, 0, 0) ' 红色 Case 2 color = RGB(255, 165, 0) ' 橙色 Case 3 color = RGB(255, 255, 0) ' 黄色 Case 4 color = RGB(0, 255, 0) ' 绿色 Case 5 color = RGB(139, 69, 19) ' 棕色 Case 6 color = RGB(0, 255, 255) ' 青色 Case 7 color = RGB(0, 0, 255) ' 蓝色 Case 8 color = RGB(128, 0, 128) ' 紫色 Case 9 color = RGB(255, 192, 203) ' 粉色 End Select With rng.Characters(1).font .color = color End With If startpos > 0 Then endpos = rng.Start rng.Parent.Range(startpos, endpos).font.color = rng.font.color End If startpos = rng.End Loop End With End Sub 请修改一下,上面的代码,使代码满足以下要求,并输出完整代码: 1.从文本开头,开始查找第一个数字和第二个数字,全选这两个数字之间的所有字符,并将第二个数字的颜色属性,应用上去,删掉第一数字。 4.查找第二个数字和第三个数字,全选这两个数字之间的所有字符,并将第三个数字的颜色属性,应用上去,删掉第二个数字。 5. 因此类推,
时间: 2024-02-10 17:19:09 浏览: 178
Sub ColorNumbers()
Dim doc As Document
Dim rng As Range
Dim num As Variant
Dim color As Variant
Dim startpos As Long
Dim endpos As Long
Set doc = ActiveDocument
Set rng = doc.Content
With rng.Find
.ClearFormatting
.MatchWildcards = True
.Text = "[0-9]{1,}"
.Forward = True
.Wrap = wdFindStop
If .Execute Then
'找到第一个数字
startpos = rng.Start
.Execute
'找到第二个数字
endpos = rng.Start
'选中两个数字之间的所有字符
rng.Parent.Range(startpos, endpos).Select
'将第二个数字的颜色属性应用到选中字符上
rng.Font.Color = GetColor(rng.Text)
'删除第一个数字
rng.MoveStartUntil Cset:="0123456789", Count:=1
rng.Delete
'从第二个数字开始循环查找
Do While .Execute
'找到下一个数字
startpos = endpos
endpos = rng.Start
'选中两个数字之间的所有字符
rng.Parent.Range(startpos, endpos).Select
'将下一个数字的颜色属性应用到选中字符上
rng.Font.Color = GetColor(rng.Text)
'删除前一个数字
rng.MoveStartUntil Cset:="0123456789", Count:=1
rng.Delete
Loop
End If
End With
End Sub
Function GetColor(num As String) As Long
Select Case num
Case "0"
GetColor = RGB(0, 0, 0) ' 黑色
Case "1"
GetColor = RGB(255, 0, 0) ' 红色
Case "2"
GetColor = RGB(255, 165, 0) ' 橙色
Case "3"
GetColor = RGB(255, 255, 0) ' 黄色
Case "4"
GetColor = RGB(0, 255, 0) ' 绿色
Case "5"
GetColor = RGB(139, 69, 19) ' 棕色
Case "6"
GetColor = RGB(0, 255, 255) ' 青色
Case "7"
GetColor = RGB(0, 0, 255) ' 蓝色
Case "8"
GetColor = RGB(128, 0, 128) ' 紫色
Case "9"
GetColor = RGB(255, 192, 203) ' 粉色
End Select
End Function
完整代码已经输出,本代码实现了从文本开头,开始查找第一个数字和第二个数字,全选这两个数字之间的所有字符,并将第二个数字的颜色属性,应用上去,删掉第一数字。接着查找第二个数字和第三个数字,全选这两个数字之间的所有字符,并将第三个数字的颜色属性,应用上去,删掉第二个数字。以此类推。
阅读全文