如何从具有多种颜色文本的单元格中提取基于字体颜色的文本

use*_*430 3 excel formatting vba text colors excel-vba

我有一列数据(A).列(A)中每个单元格中的数据是半色和另一半色.例如,假设字符串的第一部分是红色,字符串的第二部分是黑色.每个单元格中红色和黑色字符串的长度随着没有图案而变化.红色和黑色字符的类型不同,没有图案.没有空格或特殊字符将红色字符与每个单元格中的黑色字符分开.我想使用公式或函数从每个单元格中提取并复制红色字符到新列(B).建议?

(A)原件..........(B)红色

abjksglkjaf .......... abjk

kjd3kdn9j ............ kjd3kd

2hn89dslkjh .......... 2HN

Dmi*_*liv 11

您可以使用此用户定义的函数:

Function redPart(x As Range) As String
    Dim res As String
    With x
        For i = 1 To Len(.Value)
            ' red = RGB(255, 0, 0)
            If .Characters(i, 1).Font.Color = RGB(255, 0, 0) Then
                res = res & .Characters(i, 1).Text
            End If
        Next
    End With
    redPart = res
End Function
Run Code Online (Sandbox Code Playgroud)

只需写入单元格B1公式=redPart(A1)并将其拖下来.

结果:

在此输入图像描述