Excel宏可在240个字符标记处添加HTML粗体标签“中断”

时间:2019-01-04 15:51:17

标签: excel vba

我有一个在单元格上运行的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> 这里的句子”

0 个答案:

没有答案