Note: The other languages of the website are Google-translated. Back to English

如何从Excel中的单元格中基于字体颜色提取文本?

如果您在Excel的每个单元格中都有一个带有红色文本的数据列表,如下面的屏幕截图所示,您知道如何仅提取红色文本吗? 现在,我将介绍一种快速的方法来解决难题,该难题根据Excel中单元格中的字体颜色提取文本。

文档提取文本颜色 1

根据字体颜色从每个单元格中提取文本

Office选项卡在Office中启用选项卡式编辑和浏览,并使您的工作更加轻松...
Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%
  • 重用任何东西: 将最常用或最复杂的公式,图表等添加到您的收藏夹中,并在将来快速重用它们。
  • 超过20种文字功能: 从文本字符串中提取数字; 提取或删除部分文字; 将数字和货币转换为英文单词。
  • 合并工具:将多个工作簿和工作表合二为一; 合并多个单元格/行/列,而不会丢失数据; 合并重复的行和总和。
  • 分割工具:根据价值将数据分割成多个工作表; 一本工作簿可转换为多个Excel,PDF或CSV文件; 一列到多列。
  • 跳过粘贴 隐藏/过滤的行; 计数与求和 按背景色; 向多个收件人批量发送个性化电子邮件。
  • 超级过滤器: 创建高级过滤方案并应用于任何工作表; 排序 按星期,日期,频率等 筛选器 用粗体,公式,注释...
  • 超过300种强大的功能; 适用于 Office 2007-2021 和 365; 支持所有语言; 在您的企业或组织中轻松部署。

箭头蓝色右气泡 根据字体颜色从每个单元格中提取文本

在Excel中,您只能使用定义的函数根据字体颜色提取文本。

1。 按 Alt + F11键 键一起打开Microsoft Visual Basic for Applications窗口。

2。 点击 插页 > 模块 并将下面的VBA代码复制到弹出的窗口中。

VBA:基于字体颜色提取文本

Function GetColorText(pRange As Range) As String
'UpdatebyExtendoffice20220621
Dim xOut As String
Dim xValue As String
Dim i As Long
Dim TextColor
TextColor = RGB(255, 0, 0) 'colorindex RGB
xValue = pRange.Text
For i = 1 To VBA.Len(xValue)
  If pRange.Characters(i, 1).Font.Color = TextColor Then
  xOut = xOut & VBA.Mid(xValue, i, 1)
  End If
Next
GetColorText = xOut
End Function

3.然后保存并关闭对话框,并选择数据列表旁边的空白单元格,键入此公式 = GetColorText(A1) (A1表示要从中提取文本的单元格),按 输入 键以获取所需的文本,然后拖动自动填充手柄将公式填充到所需的范围。

现在您可以看到所有红色文本均已提取。

文档提取文本颜色 2

小技巧:在上面的VBA代码中,您可以将这个脚本TextColor = RGB(255, 0, 0)中的颜色rgb更改为其他以满足您的需要。


相关文章:


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (14)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
您好,当我尝试使用 vbBlue 时,它​​不起作用。 请帮忙? 谢谢!
该评论由网站上的主持人最小化
将字体颜色设置为 exct 蓝色。
因为蓝色有很多种“浅蓝色、天蓝色、深蓝色”
vba 仅匹配 exct 颜色.??????
该评论由网站上的主持人最小化
如果红色字符串是连续的,则代码运行良好。 如果它们在源单元格中分离,则它们在输出单元格中彼此粘合。 我的意思是如果红色文本字符串彼此远离,则输出中没有空格。 您能否为此提供解决方案?
该评论由网站上的主持人最小化
嘿,谢谢你的提示。 适用于红色和黑色。
如果我想解析“Purple”怎么办? 改变它 vbPurple 不起作用。
谢谢
该评论由网站上的主持人最小化
Buonasera,grazie mille un'ottima funzione。 Però ho un problema, quando val nel foglio ed inserisco es。 = GetColorText (A1) mi restituisce il valore giusto però come riavvio il file mi da errore #VALORE!, se poi clicco 2 volte sopra mi da il valore corretto e così via。 车费?
该评论由网站上的主持人最小化
dimenticavo io ho Excel 2010
该评论由网站上的主持人最小化
谢谢,非常有趣的代码。
该评论由网站上的主持人最小化
如果红色字符串是连续的,则代码运行良好。 如果它们在源单元格中分离,则它们在输出单元格中彼此粘合。 我的意思是如果红色文本字符串彼此远离,则输出中没有空格。 您能否为此提供解决方案?
该评论由网站上的主持人最小化
试试这个,它应该工作
函数 GetColorText(pRange As Range) 作为字符串
'更新为获取多个
将 xOut 调暗为字符串
将 xValue 调暗为字符串
朦胧我
Dim wasRed 作为布尔值
xValue = pRange.Text

对于 i = 1 到 VBA.Len(xValue)

如果 pRange.Characters(i, 1).Font.Color = vbRed Then
xOut = xOut & VBA.Mid(xValue, i, 1)
wasRed = 真
ElseIf wasRed = True 然后
wasRed = 假
xOut = xOut & ";"
结束如果

下一页

GetColorText = xOut
函数结束

该评论由网站上的主持人最小化
非常感谢它工作得很好。 你是救世主蒂姆:-) 
该评论由网站上的主持人最小化
我仍然无法提取蓝色文本(#1166BB)。 有没有办法使用 Hex: #1166BB 来获取我需要的彩色文本?
该评论由网站上的主持人最小化
嗨,Robert E Perez,我已经更新了 VBA 代码,现在它支持通过 rgb 代码获取彩色文本。 您可以再次尝试该代码。
该评论由网站上的主持人最小化
我在一个由逗号分隔的单元格中有一个特定的文本,并且每个文本都有颜色。 使用分隔符功能时,我无法保留文本的字体颜色。感谢您的帮助!
该评论由网站上的主持人最小化
嗨,jdhjjd,我不太清楚你的问题。 您想从单元格中提取特定文本并保持其字体颜色如下图所示?
https://www.extendoffice.com/images/stories/comments/sun-comment/split_and_keep_font_color.png
或拆分单元格并保留每个文本字体颜色?
https://www.extendoffice.com/images/stories/comments/sun-comment/split_and_keep_font_color-2.png
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护