excel中的VBA代码使标记之间的文本加粗

excel中的VBA代码使标记之间的文本加粗,vba,excel,Vba,Excel,我有一个csv文件,其中包含html标记,并表示粗体文本。(即,在单元格内较长的文本块中,这些标记之间的几个单词应为粗体)。是否有一种方法可以使用excel中的vba代码剥离标记,并将标记之间的文本加粗 注意-在给定的单元格中有时会有多组标记 这应该满足您的要求: Sub BoldTags() Dim X As Long, BoldOn As Boolean BoldOn = False 'Default from start of cell is not to bold For X = 1 T

我有一个csv文件,其中包含html标记,并表示粗体文本。(即,在单元格内较长的文本块中,这些标记之间的几个单词应为粗体)。是否有一种方法可以使用excel中的vba代码剥离标记,并将标记之间的文本加粗


注意-在给定的单元格中有时会有多组标记

这应该满足您的要求:

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
Sub-BoldTags()
尺寸X为长,粗体为布尔值
BoldOn=False“从单元格开始的默认值不为粗体
对于X=1到Len(ActiveCell.Text)
如果UCase(Mid(ActiveCell.Text,X,3))=“”那么
博尔顿=真
ActiveCell.Characters(X,3).删除
如果结束
如果UCase(Mid(ActiveCell.Text,X,4))=“”那么
博尔顿=假
ActiveCell.Characters(X,4).删除
如果结束
ActiveCell.Characters(X,1).Font.Bold=BoldOn
下一个
端接头
当前设置为在activecell上运行,您只需将其放在一个循环中即可完成整个列。您可以轻松地将此代码改编为其他用于单元格格式(如斜体等)的HTML标记

这是在我测试的细胞中(减去Te
st of粗体结束后的空格)

结果是:粗体端的样本测试


希望有帮助

这应该是你想要的:

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
Sub-BoldTags()
尺寸X为长,粗体为布尔值
BoldOn=False“从单元格开始的默认值不为粗体
对于X=1到Len(ActiveCell.Text)
如果UCase(Mid(ActiveCell.Text,X,3))=“”那么
博尔顿=真
ActiveCell.Characters(X,3).删除
如果结束
如果UCase(Mid(ActiveCell.Text,X,4))=“”那么
博尔顿=假
ActiveCell.Characters(X,4).删除
如果结束
ActiveCell.Characters(X,1).Font.Bold=BoldOn
下一个
端接头
当前设置为在activecell上运行,您只需将其放在一个循环中,即可完成整个列。您可以轻松地将此代码改编为其他HTML标记,以进行单元格格式设置(如italic等)

这是在我测试的细胞中(减去Test of粗体结束后的空格)

结果是:粗体端的样本测试


希望能有所帮助

html标记总是在一组逗号内-即
1、2、3
,或者它们是否跨越它们-即
1、2、3
?标记不跨越逗号,但并非逗号之间的所有文本都在标记中,例如,三个单元格的示例可能是:1,not boldbold<\b>not bold再次不t、 三是html标记始终位于一组逗号内-即
1、2、3
,或者它们是否跨越它们-即
1、2、3
?标记不跨越逗号,但并非逗号之间的所有文本都在标记中,例如,三个单元格的示例可能是:1,not boldbold<\b>not bold再次,not,three