[算表] 如何用VBA将粗体字前后加上<b></b>

楼主: enigma1001 (伊格玛)   2021-04-27 07:55:02
因表格内文字的粗体字跟细体字参杂,
要做成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>
感谢
作者: soyoso (我是耀宗)   2021-04-27 12:52:00
https://i.imgur.com/yT8JYcv.jpeg 类似这样执行上范例可调整的结果https://i.imgur.com/Q8KRXLd.gif 如果有要循环的话再自行加入
楼主: enigma1001 (伊格玛)   2021-04-27 22:46:00
终于可以顺利执行了,感谢s大m(_ _)mA5的效果执行不出来,我再研究看看改成i+2之后就ok了

Links booklink

Contact Us: admin [ a t ] ucptt.com