![如何仅通过字体颜色从 Excel 文本中捕获子字符串?](https://linux22.com/image/1518226/%E5%A6%82%E4%BD%95%E4%BB%85%E9%80%9A%E8%BF%87%E5%AD%97%E4%BD%93%E9%A2%9C%E8%89%B2%E4%BB%8E%20Excel%20%E6%96%87%E6%9C%AC%E4%B8%AD%E6%8D%95%E8%8E%B7%E5%AD%90%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%9F.png)
答案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 的参数以匹配您要查找的颜色。此外,如果单个单元格中有多个子字符串,它们将被连接在一起。