首页 > 解决方案 > Excel 宏在 240 个字符标记处添加 HTML 粗体标签“中断”

问题描述

我有一个在单元格上运行的 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>,而是将接下来四个字符的文本格式更改为粗体。换句话说,如果在运行宏之后有一个短语“ Example sentence here”,它将显示为“ <b>Example sentence here ”。正如我所说,这在单元格长度中始终超过 240 个字符。如果单元格长度少于 240 个字符,这似乎不是问题。

预期结果将是“ <b>Example</b> sentence here”

标签: excelvba

解决方案


推荐阅读