[算表] 如何用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