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

时间:2014-02-02 18:49:23

标签: excel excel-vba text colors formatting vba

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

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

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

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

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

1 个答案:

答案 0 :(得分: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

只需在单元格B1公式=redPart(A1)中写下并拖下来。

<强>结果:

enter image description here