作者enigma1001 (艾尼格玛)
看板Office
标题[算表] 如何用VBA将粗体字前後加上<b></b>
时间Tue Apr 27 07:55:02 2021
因表格内文字的粗体字跟细体字参杂,
要做成html前要将粗体字用<b></b>标注,
看网路上的写法是
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
虽然当字都在同一行的时候可以执行,
但常遇到大写後就换行的情况就会发生状况,
例如
BBBaaa -> <b>BBB</b>aaa 可以顺利执行
BBB <b>BBB
aaa -> </b>aaa
会变成上述情况
看程式里面是说当遇到第一个非大写的时候就插入</b>
请问要怎麽改成遇到换行符号的时候也可以在末端插入</b>
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.253.54 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1619481304.A.383.html
2F:→ soyoso: 执行上范例可调整的结果 04/27 12:52
4F:→ soyoso: 加入 04/27 12:53
5F:→ enigma1001: 终於可以顺利执行了,感谢s大m(_ _)m 04/27 22:46
6F:→ enigma1001: A5的效果执行不出来,我再研究看看 04/27 23:42
※ 编辑: enigma1001 (49.216.144.116 台湾), 04/29/2021 02:13:29