繁体   English   中英

如何仅将单元格中的红色文本复制到另一个单元格?

[英]How do I copy only the red text in a cell to another cell?

我在 Excel 中有包含不同颜色文本的单元格。 我希望能够将特定颜色的文本提取到另一个单元格。

我如何修改我的 UDF 来解决这个问题?

Function RedText(Rng As Range) As String
  Dim X As Long, S As String
  S = Rng.Text
  For X = 1 To Len(Rng.Text)
    If Rng.Characters(X, 1).Font.Color <> vbRed Then
      If Mid(S, X, 1) <> vbLf Then Mid(S, X, 1) = " "
    End If
  Next
  RedText = Replace(Replace(Application.Trim(S), " " & vbLf, vbLf), vbLf & " ", vbLf)
End Function

谢谢

例如:

Function TextByColor(Rng As Range, hex As String) As String
  Dim X As Long, S As String, clr As Long
  S = Rng.Text
  clr = HexToRGB(hex)
  For X = 1 To Len(Rng.Text)
    If Rng.Characters(X, 1).Font.Color <> clr Then
      If Mid(S, X, 1) <> vbLf Then Mid(S, X, 1) = " "
    End If
  Next
  RedText = Replace(Replace(Application.Trim(S), " " & vbLf, vbLf), vbLf & " ", vbLf)
End Function

Function HexToRGB(hex As String) As Long
    Dim r, g, b
    r = Application.Hex2Dec(Left(hex, 2))
    g = Application.Hex2Dec(Mid(hex, 3, 2))
    b = Application.Hex2Dec(Right(hex, 2))
    HexToRGB = RGB(r, g, b)
End Function

用法: =textbycolor(A3,"0000FF")

如评论中所述 - 这就是您不能在完整十六进制值上使用 HEX2DEC 的原因(R 和 G 组件被切换):

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM