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

3

我有一列数据(A)。每个单元格中的数据都是一半一种颜色,另一半是另一种颜色。例如,假设字符字符串的第一部分是红色的,第二部分是黑色的。每个单元格中红色和黑色字符字符串的长度没有规律可言,红色和黑色的字符类型也没有规律。在每个单元格内,没有分隔红色字符和黑色字符的空格或特殊字符。我想使用公式或函数从每个单元格中提取并复制红色字符到一个新的列(B)中。你有什么建议?

(A) 原始数据..........(B) 红色字符

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

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

2hn89dslkjh..........2hn

1个回答

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


这段代码有问题。如果字符之间用空格分隔,它会将它们全部提取在一起,例如:提取后的 "Red Red" 将变成 "RedRed"。 - Elienay Junior

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接