excel中的VBA代码使标记之间的文本变为粗体

时间:2015-04-13 02:49:17

标签: excel vba excel-vba

我有一个csv文件,其中包含html标签< b>和< \ b>表示粗体文字。 (即,这些标签之间的几个单词,在单元格中较长的文本块中,应该是粗体)。有没有办法在excel中使用vba代码去除标记,并使标记之间的文本变为粗体?

注意 - 给定单元格中有时会有多组标签。

1 个答案:

答案 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 加粗结束

希望有所帮助