如何仅通过字体颜色从 Excel 文本中捕获子字符串?

如何仅通过字体颜色从 Excel 文本中捕获子字符串?

我正在使用 vlookup 以通常的方式从大型电子表格中捕获选定的单元格。但是,我选择的文本使用彩色字体,传达了我需要保留的信息。但 vlookup 不会复制格式。我看到了这些可能性:

a) 以某种方式使用 vlookup 来保留格式 - 不太可能

b) 在将通过 vlookup 传输的彩色文本周围放置括号或一些分隔符。

需要确定绿色文本的开始和结束位置

我并不关心颜色本身,我只需要保留给定子字符串是“特殊”的事实。如果需要,我可以将文本传输到 Word 或其他应用程序。一如既往地感谢。

答案1

Excel 中唯一能够根据颜色区分不同单元格或文本的功能是 VBA。Excel 不是文本编辑器,也不是真正为制作复杂的报告或演示文稿而设计的 - 它是一个分析工具。Word 或 Powerpoint 可以根据文本颜色进行选择,因为它们是演示工具。

您的第二种可能性是添加分隔符,这是 Excel 环境中的最佳解决方案;使用其他应用程序可能是您最好的选择。

我确实希望 Excel 不要提供那么多格式选项,特别是在更高版本中 - 人类是视觉导向的,因此我们继续使用格式,而计算机真正需要的是清晰的分隔符。

答案2

该函数完成以下工作:

Function GetColorText(pRange As range) As String
    Dim xOut As String
    Dim xValue As String
    Dim i As Long
    xValue = pRange.Text

    For i = 1 To VBA.Len(xValue)

        If pRange.Characters(i, 1).Font.Color = RGB(112, 173, 71) Then
            xOut = xOut & VBA.Mid(xValue, i, 1)
        End If
    Next
    GetColorText = xOut
End Function

需要更改 RGB 的参数以匹配您要查找的颜色。此外,如果单个单元格中有多个子字符串,它们将被连接在一起。

相关内容