我有一个csv文件,其中包含html标签< b>和< \ b>表示粗体文字。 (即,这些标签之间的几个单词,在单元格中较长的文本块中,应该是粗体)。有没有办法在excel中使用vba代码去除标记,并使标记之间的文本变为粗体?
注意 - 给定单元格中有时会有多组标签。
答案 0 :(得分:4)
这应该做你想要的:
Sub BoldTags()
Dim X As Long, BoldOn As Boolean
BoldOn = False 'Default from start of cell is not to bold
For X = 1 To Len(ActiveCell.Text)
If UCase(Mid(ActiveCell.Text, X, 3)) = "<B>" Then
BoldOn = True
ActiveCell.Characters(X, 3).Delete
End If
If UCase(Mid(ActiveCell.Text, X, 4)) = "</B>" Then
BoldOn = False
ActiveCell.Characters(X, 4).Delete
End If
ActiveCell.Characters(X, 1).Font.Bold = BoldOn
Next
End Sub
目前设置为在activecell上运行,你可以将它放在一个循环中来完成整列。您可以轻松地将此代码用于其他HTML标记以进行单元格格式化(即斜体等)
这是在我测试的细胞中(减去&lt;之后的空间):样品&lt; B个碲&LT; / b&gt; st of&lt; B个加粗&LT; / B个端
结果是:样本 Te st 加粗结束
希望有所帮助