我有一个在单元格上运行的Excel VBA宏,用于在粗体文本周围添加HTML粗体标签(并在视觉上保持粗体格式)。尽管我发现对于长度大于240个字符的单元格,它可以可靠地停止工作,但是效果很好。
我不太熟悉Excel VBA。我正在尝试学习并弄清楚,但看不到不正确的地方。
Sub Tester()
AddTags Range("A1")
End Sub
Sub AddTags(c As Range)
Dim p As Long, isB As Boolean
Do
p = p + 1
If p > Len(c.Value) Then Exit Do
If c.Characters(p, 1).Font.Bold And Not isB Then
'entering a bolded section
c.Characters(p, 0).Insert "<b>"
c.Characters(p, 3).Font.Bold = True
isB = True
p = p + 3 'skip the tag you just added
ElseIf Not c.Characters(p, 1).Font.Bold And isB Then
'leaving a bolded section
c.Characters(p, 0).Insert "</b>"
c.Characters(p, 4).Font.Bold = True
isB = False
p = p + 4 'skip the tag you just added
End If
Loop
'close any open tag
If isB Then c.Characters(p, 0).Insert "</b>"
End Sub
“ break”一词的示例:它将在适用的情况下添加开头的<b>
代码,但是不是用</b>
关闭它,而是更改了下一个文本的格式四个字符以粗体显示。换句话说,如果在运行宏后有一个短语“ 示例句子”,它将显示为“ <b>
示例感此处”。
就像我说过的那样,这始终会破坏超过240个字符的单元格长度。单元格长度少于240个字符时,这似乎不是问题。
预期结果将是“ <b>
示例</b>
这里的句子”