Excel在文本中提取粗体字

任何人都可以帮助我与我的Excel问题? 我有一个充满文本的单元格。 本文中的一些词语以粗体显示。 这些单词是关键字,应该抽取到行中的另一个单元格以标识关键字。 例:

单元格中的文本:

我想使用Google 地图获取路线信息

输出:

谷歌; 地图; 路线;

先谢谢你!

你也可以使用这个UDF来产生相同的结果。 请在模块中input以下代码。

Public Function findAllBold(ByVal rngText As Range) As String Dim theCell As Range Set theCell = rngText.Cells(1, 1) For i = 1 To Len(theCell.Value) If theCell.Characters(i, 1).Font.Bold = True Then If theCell.Characters(i + 1, 1).Text = " " Then theChar = theCell.Characters(i, 1).Text & ", " Else theChar = theCell.Characters(i, 1).Text End If Results = Results & theChar End If Next i findAllBold = Results End Function 

现在您可以使用新创build的函数从任何单元格返回粗体值。

在这里输入图像描述

尝试这个

 Option Explicit Sub Demo() Dim ws As Worksheet Dim str As String, strBold As String Dim isBold As Boolean Dim cel As Range Dim lastRow As Long, i As Long Set ws = ThisWorkbook.Sheets("Sheet1") 'change Sheet1 to your data sheet isBold = False With ws lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 'last row with data in Column A For Each cel In .Range("A1:A" & lastRow).Cells 'loop through each cell in Column A strBold = "" For i = 1 To Len(cel.Value) If cel.Characters(Start:=i, Length:=1).Font.Bold = True Then 'check if character is bold isBold = True str = Mid(cel.Value, i, 1) If cel.Characters(Start:=i, Length:=1).Text = " " Then 'check for space strBold = strBold & "; " isBold = False Else strBold = strBold & str End If Else If isBold Then strBold = strBold & "; " isBold = False End If End If Next cel.Offset(0, 1) = strBold Next End With End Sub 

在这里输入图像说明

从这里得到这个代码。