Excel截取指定颜色字符之间的文字

2025-10-13 09:37:14

1、打开Excel表格,按下【Alt+F11】组合键调出VBE编辑器。

Excel截取指定颜色字符之间的文字

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

Excel截取指定颜色字符之间的文字

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

Excel截取指定颜色字符之间的文字

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

Excel截取指定颜色字符之间的文字

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

Excel截取指定颜色字符之间的文字

1、VBA程序思路解读:

1、使用Mid截取字符串时,需要先判断红色字符的位置,之后才好判断截取字符的起始位置,截取字符的长度。

2、Len函数是获取单元格里面字符串的长度。

3、VBA程序里边,其执行顺序是由上而下,应该先判断拼接的字符“Str2”和截取的字符“Str1”是否都不为空白,再判断拼接的字符“Str2”为空白和截取的字符“Str1”不是空白的情况,以免结果出错。

4、把输出结果“mySheet1.Cells(i1, 2) = Str2”放在第二个For……Next的外部,可以减少执行次数,提高运行速度。

Excel截取指定颜色字符之间的文字

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢