目前,我有一个excel宏,当运行时,它在一列中逐个单元格向下移动,只从一段长的字符串中提取粗体单词。它将字符串中的所有粗体单词放置在相邻的单元格中。因为example...cell A1是文本的一段,有些单词用粗体表示,当宏运行时,A1中的所有粗体单词都放在单元格B1中。除了所有粗体字都放在一个长串里,每个粗体字之间没有空格外,它的效果很好。我需要帮助创建一个分隔符,放在字符串中所有粗体单词之间。谢谢!
Sub GetBoldedInfo()
Dim txt As String
boldedRow = Cells(Rows.Count, "A").End(xlUp).Row
For Each c In Range(ActiveCell, ActiveCell.End(xlDown))
myboldtext = ""
For i = 1 To Len(c.Value)
If c.Characters(Start:=i, Length:=1).Font.FontStyle = "Bold" Then
txt = Mid(c.Value, i, 1)
'text in bold
myboldtext = myboldtext & txt
End If
Next
c.Offset(0, 1) = myboldtext
Next
End SubB1输出:
China – ABC:NIKEAccount # 1234567890RetailFreight - Ocean1 potential annual shipmentsannual revenue of US $1理想B1输出:
China – ABC:;NIKE;Account # 1234567890;Retail;Freight - Ocean;1 potential annual shipment;annual revenue of US $1非常理想的输出:由相邻列中的单元格分隔的。
B1 = China – ABC: C1 = NIKE D1 = Account # 1234567890 etc.发布于 2016-05-31 19:20:46
试试这样的东西。
替换
If c.Characters(Start:=i, Length:=1).Font.FontStyle = "Bold" Then
txt = Mid(c.Value, i, 1)
'text in bold
myboldtext = myboldtext & txt
End If使用
If c.Characters(Start:=i, Length:=1).Font.FontStyle = "Bold" Then
If c.Characters(Start:=i + 1, Length:=1).Font.FontStyle <> "Bold" Then
'text in bold with delimiter
txt = Mid(c.Value, i, 1)
myboldtext = myboldtext & txt & ";"
else
'text in bold
txt = Mid(c.Value, i, 1)
myboldtext = myboldtext & txt
End If
End If当粗体字符后面的字符不是粗体时,这应该会自动附加分隔符。
https://stackoverflow.com/questions/37553334
复制相似问题