Excel截取指定颜色字符之间的文字
1、打开Excel表格,按下【Alt+F11】组合键调出VBE编辑器。

2、在VBE编辑器的菜单栏上面点击【插入】、【模块】。

3、在模块的代码框里边输入以下VBA程序。
Sub Font_Color_Cut()
Dim i1, i2, i3, i4, Str1, Str2
On Error Resume Next '忽略运行过程中可能出现的错误
Set mySheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表Sheet1
For i1 = 2 To 1000 '从第2行到1000行
If mySheet1.Cells(i1, 1) <> "" Then '如果单元格不是空白,则
i4 = 0
Str2 = ""
For i2 = 1 To Len(mySheet1.Cells(i1, 1)) '对单元格里面的每一个字符进行扫描
If mySheet1.Cells(i1, 1).Characters(i2, 1).Font.Color = RGB(255, 0, 0) Then
'如果是红色字符,则
i4 = i3
i3 = i2
If i2 > i4 And i4 <> 0 Then
Str1 = Mid(mySheet1.Cells(i1, 1), i4 + 1, i3 - i4 - 1) '截取字符
If Str2 <> "" And Str1 <> "" Then '判断拼接的字符Str2及截取的字符Str1是否为空
Str2 = Str2 & "," & Str1 '字符拼接
End If
If Str2 = "" And Str1 <> "" Then
Str2 = Str1
End If
End If
End If
Next
mySheet1.Cells(i1, 2) = Str2 '把拼接的字符写入同一行的B列单元格
End If
Next
End Sub

4、在VBE的功能区里边点击“运行”图标运行程序。

5、回到Sheet1工作表界面,将会看到已经截取出来字符。

1、VBA程序思路解读:
1、使用Mid截取字符串时,需要先判断红色字符的位置,之后才好判断截取字符的起始位置,截取字符的长度。
2、Len函数是获取单元格里面字符串的长度。
3、VBA程序里边,其执行顺序是由上而下,应该先判断拼接的字符“Str2”和截取的字符“Str1”是否都不为空白,再判断拼接的字符“Str2”为空白和截取的字符“Str1”不是空白的情况,以免结果出错。
4、把输出结果“mySheet1.Cells(i1, 2) = Str2”放在第二个For……Next的外部,可以减少执行次数,提高运行速度。
