[英]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.